com doc/zh: 翻译 errors 章节: language/errors.xml language/errors/basics.xml

[email protected] (Dai Jie) Sun, 10 Jan 2021 10:09:50 +0000
Newsgroups php.doc.zh
Message-ID <[email protected]>
Commit:    39d430008a10723b1a26d61b5c7165911e1331f8
Author:    戴劼 <[email protected]>         Sun, 10 Jan 2021 18:09:50 +0800
Parents:   80e9f4df452b2de80e6b2c1c5c03efec9ca41622
Branches:  master

Link:       http://git.php.net/?p=doc/zh.git;a=commitdiff;h=39d430008a10723b1a26d61b5c7165911e1331f8

Log:
翻译 errors 章节

Changed paths:
  M  language/errors.xml
  A  language/errors/basics.xml


Diff:
diff --git a/language/errors.xml b/language/errors.xml
index ede36c78..f79a44f0 100644
--- a/language/errors.xml
+++ b/language/errors.xml
@@ -4,13 +4,13 @@
 <!-- Reviewed: no -->
 
 <chapter xml:id="language.errors" xmlns="http://docbook.org/ns/docbook" xmlns:phd="http://www.php.net/ns/phd">
- <title>Errors</title>
+ <title>错误</title>
 
  <sect1 phd:chunk="false" xml:id="language.errors.intro">
   <title>介绍</title>
 
   <para>
-   可悲的是,不管我们在写代码时多么小心,错误始终是有的。PHP将会为许多常见的我文件和运行问题提供错误,警告和一些通知,同时让我们知道如何检测和处理这些错误,使得调试程序容易的多。
+   可悲的是,不管我们在写代码时多么小心,错误始终是有的。PHP 会为许多常见的编码和运行问题报告错误、警告、通知。知道如何检测和处理这些错误,使得调试程序更容易。
   </para>
  </sect1>
 
diff --git a/language/errors/basics.xml b/language/errors/basics.xml
new file mode 100644
index 00000000..01af6ddb
--- /dev/null
+++ b/language/errors/basics.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision$ -->
+<!-- EN-Revision: 17624e47b98a93ec156a0c2a51ce7b9fd3116abe Maintainer: daijie Status: ready -->
+
+<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>PHP 错误处理</title>
+
+  <para>
+   当未设置错误处理函数时,PHP 会根据配置处理所有出现的错误。
+   php.ini 中 
+   <link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link> 的配置
+   或者是运行时调用 <function>error_reporting</function> 控制了哪些错误需要报告,哪些错误需要自动忽略。
+   由于有些错误会在运行用户脚本前就可能出现,所以强烈推荐用配置指令来设置。
+  </para>
+
+  <para>
+   在开发环境里为了发现并修复 PHP 产生的问题,
+   应该总是把 <link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link>
+   设置为 <constant>E_ALL</constant>。
+   
+   在生产环境里,用户可能为了降低信息的详细程度,
+   想要将它设置为类似 <code>E_ALL &amp; ~E_NOTICE &amp; ~E_STRICT &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>
+    PHP 不仅能显示错误,还可以开启 <link linkend="ini.log-errors"><parameter>log_errors</parameter></link>
+    指令来记录错误日志。它能根据 <link linkend="ini.error-log"><parameter>error_log</parameter></link> 的设置,
+    记录任意错误到文件或者 syslog。
+   特别适用于生产环境,用户可以记录发生的错误,并根据这些错误生成报告。
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.errors.basics.user">
+  <title>用户的错误处理器</title>
+
+  <para>
+    如果 PHP 默认错误处理器还不能满足要求,用户可以通过 <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
+-->