mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
94 lines
5.9 KiB
XML
94 lines
5.9 KiB
XML
<?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 & ~E_NOTICE & ~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
|
||
-->
|