1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 15:52:13 +01:00
Files
archived-doc-ru/language/errors/php7.xml
Mikhail Alferov 0179547f35 Update the Rev 4bf789e9 to En (#1007)
* Update php7.xml to En

* Update exceptions.xml to En
2024-11-29 08:24:17 +03:00

115 lines
4.4 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4bf789e981af0836c41daa16e57ef86c21497faa Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="language.errors.php7" xmlns="http://docbook.org/ns/docbook">
<title>Ошибки в PHP 7</title>
<para>
В PHP 7 механизм сообщения об ошибках был сильно изменён. Традиционное
оповещение об ошибке в PHP 5 было заменено новым механизмом, в котором большинство ошибок вызываются с помощью исключений класса <classname>Error</classname>.
</para>
<para>
Как и обычные исключения, исключения <classname>Error</classname>
вызываются до появления первого соответствующего блока
<link linkend="language.exceptions.catch"><literal>catch</literal></link>.
Если соответствующие блоки не предусмотрены,
то будет вызван любой обработчик исключений, установленный с помощью
<function>set_exception_handler</function>.
В случае отсутствия обработчика по умолчанию, исключение будет конвертировано
в фатальную ошибку и будет обработано как традиционная ошибка.
</para>
<para>
Поскольку класс <classname>Error</classname> не наследуется от класса <classname>Exception</classname>,
блок <code>catch (Exception $e) { ... }</code> для обработки неперехваченных исключений
PHP 5 не может перехватить исключения <classname>Error</classname>.
Для их перехвата используйте блок <code>catch (Error $e) { ... }</code> или
установите обработчик исключений с помощью <function>set_exception_handler</function>.
</para>
<sect2 xml:id="language.errors.php7.hierarchy">
<title>Иерархия <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
-->