1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/language/errors/basics.xml
Sergey Panteleev daef8df962 Обнуление тега Reviewed (#364)
[skip-lint]
[skip-spellcheck]
2021-11-16 13:03:53 +03:00

94 lines
5.9 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: de9c65c91ff1710d8b2d2ec955caea0162679305 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="language.errors.basics" xmlns="http://docbook.org/ns/docbook">
<title>Основы</title>
<para>
PHP сообщает об ошибках в ответ на некоторые внутренние ошибочные обстоятельства.
Они могут быть использованы для уведомления о разных состояниях,
а также могут выводиться на экран и записываться в логи по желанию.
</para>
<para>
Каждая ошибка, генерируемая PHP, обязательно содержит информацию о своём типе.
<link linkend="errorfunc.constants">В этом списке</link> перечислены все типы ошибок,
а также описания их поведений и провоцирующие их причины.
</para>
<sect2 xml:id="language.errors.basics.handling">
<title>Обработка ошибок</title>
<para>
PHP, по умолчанию, может обрабатывать любые ошибки в соответствии со своей
конфигурацией, если обработчик ошибок не установлен. О каких ошибках сообщать
и какие ошибки игнорировать указывается в параметре <link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link>
конфигурации php.ini, или во время исполнения программы с помощью вызова
<function>error_reporting</function>. Настоятельно рекомендуется заранее конфигурировать php.ini,
так как некоторые ошибки могут произойти до начала выполнения вашего скрипта.
</para>
<para>
На стадии разработки, обязательно настройте параметр
<link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link>
на значение <constant>E_ALL</constant>, так как вам необходимо знать обо всех ошибках
для их решения на этой стадии. Когда продукт готов, вы можете изменить значение на менее
подробное, вроде <code>E_ALL &amp; ~E_NOTICE &amp; ~E_DEPRECATED</code>,
но во многих случаях значение <constant>E_ALL</constant> также желательно, так как
оно может предупреждать заранее о других возможных ошибках.
</para>
<para>
Дальнейшая работа PHP с появившимися ошибками зависит от двух других параметров в php.ini.
Параметр <link linkend="ini.display-errors"><parameter>display_errors</parameter></link>
определяет, включать ли данные ошибки в вывод скрипта или нет. Когда продукт готов,
обязательно выключите этот параметр, так как в описании ошибки может содержаться
конфиденциальная информация, вроде паролей базы данных. Во время разработки данный
параметр лучше включить для решения проблем, провоцирующих ошибки.
</para>
<para>
Кроме отображения ошибок, их можно записывать в лог с помощью включённого параметра
<link linkend="ini.log-errors"><parameter>log_errors</parameter></link>.
Файл лога указывается в параметре <link linkend="ini.error-log"><parameter>error_log</parameter></link>.
Данная функция незаменима на стадии конечного продукта, так как
позволяет видеть информацию об ошибках и составлять основанные на них
отчёты вдали от глаз пользователя.
</para>
</sect2>
<sect2 xml:id="language.errors.basics.user">
<title>Пользовательская обработка ошибок</title>
<para>
Если вас не устраивает работа предустановленного обработчика ошибок,
вы также можете обрабатывать множество видов ошибки с помощью своего обработчика,
который можно установить вызовом функции <function>set_error_handler</function>.
Некоторые ошибки не могут обрабатываться пользовательским обработчиком,
но те, которые могут, обрабатываются по вашему желанию: например, ваш скрипт
может выдавать пользователю любую отдельную страницу ошибки, а подробную информацию
записывать в лог или отсылать по почте.
</para>
</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
-->