Skip to content

Commit 7eb4c66

Browse files
authored
Update error-handling.xml to En + Infostyle
1 parent 92d5972 commit 7eb4c66

File tree

1 file changed

+48
-46
lines changed

1 file changed

+48
-46
lines changed

appendices/migration70/incompatible/error-handling.xml

+48-46
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,88 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<!-- EN-Revision: 22583751fbfdaa3eaa41aeb6470d1343f5cb2c78 Maintainer: rjhdby Status: ready -->
2+
<!-- EN-Revision: 2485376b5b3d6b40e5c0d4e198ab5ff2a142425c Maintainer: rjhdby Status: ready -->
33
<!-- Reviewed: no -->
44
<sect2 xml:id="migration70.incompatible.error-handling">
55
<title>Изменения в обработке ошибок и исключений</title>
66

77
<para>
8-
Многие фатальные и поправимые фатальные ошибки были
9-
переделаны в исключения в PHP 7. Эти исключения наследуют
8+
В PHP 7 многие фатальные и поправимые фатальные ошибки
9+
переделали в исключения. Эти исключения наследуют
1010
класс <classname>Error</classname>, который, в свою
1111
очередь, реализует интерфейс
1212
<classname>Throwable</classname>
13-
(новый базовый интерфейс, который наследуют все исключения).
13+
(новый базовый интерфейс, который наследуют исключения).
1414
</para>
1515

1616
<para>
17-
Это означает, пользовательские обработчики ошибок могут
18-
не быть вызваны, потому что вместо вызова ошибки, будет
19-
выброшено исключение (порождая новые фатальные ошибки
17+
Поэтому пользовательские обработчики ошибок
18+
не вызовутся, если вместо вызова ошибки
19+
выбросится исключение (порождая новые фатальные ошибки
2020
из-за неперехваченных исключений класса
2121
<classname>Error</classname>).
2222
</para>
2323

2424
<para>
25-
Более подробное описание того, как ошибки работают в PHP 7,
26-
можно найти на странице
25+
Более подробное описание работы ошибок в PHP 7
26+
даёт страница
2727
<link linkend="language.errors.php7">ошибки PHP 7</link>.
28-
Это руководство всего лишь перечисляет изменения, которые
29-
могут привести к обратной несовместимости.
28+
Это руководство только перечисляет изменения, которые
29+
приводят к обратной несовместимости.
3030
</para>
3131

3232
<sect3 xml:id="migration70.incompatible.error-handling.set-exception-handler">
3333
<title>
34-
<function>set_exception_handler</function> больше не
35-
гарантирует получение объекта класса
34+
Функция <function>set_exception_handler</function> больше
35+
не гарантирует получение объекта класса
3636
<classname>Exception</classname>
3737
</title>
3838

3939
<para>
40-
Код, реализующий регистрацию обработчика исключений
41-
с помощью <function>set_exception_handler</function>,
42-
используя декларацию типа
43-
<classname>Exception</classname>, вызовет фатальную
44-
ошибку, если будет выброшено исключение
40+
Код, который реализует регистрацию обработчика исключений
41+
функцией <function>set_exception_handler</function>
42+
через декларацию типа
43+
<classname>Exception</classname> вызовет фатальную
44+
ошибку, если выбросится исключение
4545
<classname>Error</classname>.
4646
</para>
4747

4848
<para>
49-
Если требуется работа обработчика в PHP 5 и 7, вы должны
50-
убрать объявление класса из обработчика. Если код
51-
предполагается использовать только в PHP 7, то можно
52-
просто поменять тип с <classname>Exception</classname> на
53-
<classname>Throwable</classname>.
49+
Потребуется убрать объявление класса из обработчика,
50+
если требуется работа обработчика в PHP 5 и 7. Достаточно
51+
изменить тип <classname>Exception</classname> на тип
52+
<classname>Throwable</classname>, если код
53+
планируется использовать только в PHP 7.
5454
</para>
5555

5656
<informalexample>
5757
<programlisting role="php">
5858
<![CDATA[
5959
<?php
60-
// Только PHP 5. В PHP 7 может вызвать фатальную ошибку.
60+
61+
// Только PHP 5. В PHP 7 при исключении другого типа вызывает фатальную ошибку
6162
function handler(Exception $e) { /* ... */ }
6263
set_exception_handler('handler');
6364
64-
// Будет работать PHP 5 и 7.
65-
function handler($e) { ... }
65+
// Будет работать PHP 5 и 7
66+
function handler($e) { /* ... */ }
6667
67-
// Только PHP 7.
68+
// Только PHP 7
6869
function handler(Throwable $e) { /* ... */ }
70+
6971
?>
7072
]]>
7173
</programlisting>
7274
</informalexample>
7375
</sect3>
7476

7577
<sect3 xml:id="migration70.incompatible.error-handling.constructors">
76-
<title>Встроенные конструкторы всегда вызывают исключения в случае неудачи</title>
78+
<title>Встроенные конструкторы вызывают исключения при ошибке</title>
7779

7880
<para>
79-
Ранее некоторые внутренние классы возвращали
80-
&null; или бесполезный объект, когда конструктор терпел неудачу. Все
81-
встроенные классы теперь в таком случае будут выбрасывать
82-
исключение <classname>Exception</classname>, ровно
83-
как это уже делают пользовательские классы.
81+
Раньше отдельные внутренние классы возвращали
82+
&null; или бесполезный объект, когда конструктор терпел неудачу.
83+
Теперь встроенные классы в таких случаях выбрасывают
84+
исключение <classname>Exception</classname>,
85+
так же, как это уже делают пользовательские классы.
8486
</para>
8587
</sect3>
8688

@@ -98,11 +100,11 @@ function handler(Throwable $e) { /* ... */ }
98100
<title>Изменение строгости уведомлений E_STRICT</title>
99101

100102
<para>
101-
Все сообщения <constant>E_STRICT</constant>
102-
переквалифицированы по другим уровням.
103-
Константа <constant>E_STRICT</constant> сохранена, так что
104-
<literal>error_reporting(E_ALL|E_STRICT)</literal> не вызовет
105-
ошибки.
103+
Сообщения уровня <constant>E_STRICT</constant>
104+
переквалифицировали по другим уровням.
105+
Константу <constant>E_STRICT</constant> сохранили, поэтому
106+
установка <literal>error_reporting(E_ALL|E_STRICT)</literal> не вызовет
107+
ошибок.
106108
</para>
107109
<para>
108110
<table>
@@ -111,40 +113,40 @@ function handler(Throwable $e) { /* ... */ }
111113
<thead>
112114
<row>
113115
<entry>Ситуация</entry>
114-
<entry>Новый уровень/поведение</entry>
116+
<entry>Новый уровень или поведение</entry>
115117
</row>
116118
</thead>
117119
<tbody>
118120
<row>
119-
<entry>Индексирование ресурсом</entry>
121+
<entry>Установка ресурса как индекса</entry>
120122
<entry><constant>E_NOTICE</constant></entry>
121123
</row>
122124
<row>
123125
<entry>Абстрактные статические методы</entry>
124-
<entry>Сообщение убрано, не вызывает ошибки</entry>
126+
<entry>Сообщение убрали, ошибка не возникает</entry>
125127
</row>
126128
<row>
127-
<entry>"Переопределение" конструктора</entry>
128-
<entry>Сообщение убрано, не вызывает ошибки</entry>
129+
<entry>«Переопределение» конструктора</entry>
130+
<entry>Сообщение убрали, ошибка не возникает</entry>
129131
</row>
130132
<row>
131133
<entry>Несоблюдение сигнатуры при наследовании</entry>
132134
<entry><constant>E_WARNING</constant></entry>
133135
</row>
134136
<row>
135137
<entry>Одинаковые (совместимые) свойства в двух разных трейтах</entry>
136-
<entry>Сообщение убрано, не вызывает ошибки</entry>
138+
<entry>Сообщение убрали, ошибка не возникает</entry>
137139
</row>
138140
<row>
139141
<entry>Нестатический доступ к статическому свойству</entry>
140142
<entry><constant>E_NOTICE</constant></entry>
141143
</row>
142144
<row>
143-
<entry>Только переменные могут быть присвоены по ссылке</entry>
145+
<entry>Только переменные присваиваются по ссылке</entry>
144146
<entry><constant>E_NOTICE</constant></entry>
145147
</row>
146148
<row>
147-
<entry>Только переменные могут быть переданы по ссылке</entry>
149+
<entry>Только переменные передаются по ссылке</entry>
148150
<entry><constant>E_NOTICE</constant></entry>
149151
</row>
150152
<row>

0 commit comments

Comments
 (0)