1
0
mirror of https://github.com/php/doc-zh.git synced 2026-03-24 07:02:15 +01:00
Files
archived-doc-zh/language/predefined/errorexception.xml
2024-12-01 23:27:50 +08:00

151 lines
4.7 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"?>
<!-- $Revision$ -->
<!-- EN-Revision: 2f3c1237bc46a7e40dae35e9f3aec2c1b2fa23b8 Maintainer: mowangjuanzi Status: ready -->
<!-- CREDITS: Luffy -->
<reference xml:id="class.errorexception" role="exception" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>ErrorException</title>
<titleabbrev>ErrorException</titleabbrev>
<partintro>
<!-- {{{ ErrorException intro -->
<section xml:id="errorexception.intro">
&reftitle.intro;
<para>
错误异常。
</para>
</section>
<!-- }}} -->
<section xml:id="errorexception.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis class="class">
<ooexception>
<exceptionname>ErrorException</exceptionname>
</ooexception>
<ooclass>
<modifier>extends</modifier>
<classname>Exception</classname>
</ooclass>
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis>
<modifier>protected</modifier>
<type>int</type>
<varname linkend="errorexception.props.severity">severity</varname>
<initializer>E_ERROR</initializer>
</fieldsynopsis>
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.exception')/db:partintro/db:section/db:classsynopsis/db:fieldsynopsis[preceding-sibling::db:classsynopsisinfo[1][@role='comment' and text()='&Properties;']]))">
<xi:fallback/>
</xi:include>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.errorexception')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[@role='ErrorException'])">
<xi:fallback/>
</xi:include>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.errorexception')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='ErrorException'])">
<xi:fallback/>
</xi:include>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.exception')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='Exception'])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
<!-- {{{ ErrorException properties -->
<section xml:id="errorexception.props">
&reftitle.properties;
<variablelist>
<varlistentry xml:id="errorexception.props.severity">
<term><varname>severity</varname></term>
<listitem>
<para>异常级别</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
<!-- {{{ Example -->
<section xml:id="errorexception.examples">
&reftitle.examples;
<para>
<example xml:id="errorexception.example.error-handler"><!-- {{{ -->
<title>使用 <function>set_error_handler</function> 函数将错误信息托管至 ErrorException</title>
<programlisting role="php">
<![CDATA[
<?php
set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline) {
if (!(error_reporting() & $errno)) {
// 这个错误代码未包含在 error_reporting 中。
return;
}
if ($errno === E_DEPRECATED || $errno === E_USER_DEPRECATED) {
// 因为新的或意外的弃用会破坏应用程序,
// 不要因弃用 warning 而抛出 Exception。
return;
}
throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
});
// 反序列化已损坏的数据会触发 warning
// 错误处理程序会将其转换为 ErrorException。
unserialize('broken data');
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Fatal error: Uncaught ErrorException: unserialize(): Error at offset 0 of 11 bytes in test.php:16
Stack trace:
#0 [internal function]: {closure}(2, 'unserialize(): ...', 'test.php', 16)
#1 test.php(16): unserialize('broken data')
#2 {main}
thrown in test.php on line 16
]]>
</screen>
</example><!-- }}} -->
</para>
</section>
</partintro>
&language.predefined.errorexception.construct;
&language.predefined.errorexception.getseverity;
</reference>
<!-- 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
-->