-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathphp7.xml
More file actions
116 lines (109 loc) · 3.8 KB
/
php7.xml
File metadata and controls
116 lines (109 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4bf789e981af0836c41daa16e57ef86c21497faa Maintainer: lacatoire Status: ready -->
<sect1 xml:id="language.errors.php7" xmlns="http://docbook.org/ns/docbook">
<title>Errori in PHP 7</title>
<para>
PHP 7 cambia il modo in cui la maggior parte degli errori viene segnalata da PHP. Invece di segnalare
gli errori attraverso il meccanismo di segnalazione errori tradizionale utilizzato da PHP 5, la maggior
parte degli errori viene ora segnalata lanciando eccezioni <classname>Error</classname>.
</para>
<para>
Come per le eccezioni normali, queste eccezioni <classname>Error</classname>
risaliranno fino a raggiungere il primo blocco
<link linkend="language.exceptions.catch"><literal>catch</literal></link> corrispondente.
Se non ci sono blocchi corrispondenti, verrà chiamato qualsiasi gestore di eccezioni predefinito
installato con <function>set_exception_handler</function>,
e se non c'è un gestore di eccezioni predefinito, l'eccezione verrà
convertita in un errore fatale e gestita come un errore tradizionale.
</para>
<para>
Poiché la gerarchia <classname>Error</classname> non eredita da
<classname>Exception</classname>, il codice che utilizza blocchi
<code>catch (Exception $e) { ... }</code> per gestire le eccezioni non catturate
in PHP 5 non catturerà questi <classname>Error</classname>.
È necessario un blocco <code>catch (Error $e) { ... }</code>
o un gestore <function>set_exception_handler</function>.
</para>
<sect2 xml:id="language.errors.php7.hierarchy">
<title>Gerarchia di <classname>Error</classname></title>
<itemizedlist>
<listitem>
<simpara><classname>Throwable</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>Error</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>ArithmeticError</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>DivisionByZeroError</classname></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><classname>AssertionError</classname></simpara>
</listitem>
<listitem>
<simpara><classname>CompileError</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>ParseError</classname></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><classname>TypeError</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>ArgumentCountError</classname></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><classname>ValueError</classname></simpara>
</listitem>
<listitem>
<simpara><classname>UnhandledMatchError</classname></simpara>
</listitem>
<listitem>
<simpara><classname>FiberError</classname></simpara>
</listitem>
<listitem>
<simpara><classname>RequestParseBodyException</classname></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><classname>Exception</classname></simpara>
<itemizedlist>
<listitem>
<simpara>...</simpara>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->