Что нового в PHP7.1: работа с группой исключений.
Всем привет! В этой статье мы рассмотрим, как работать с группой исключений в PHP 7.1.
Давайте рассмотрим такой код:
class OneException extends Exception {}
class TwoException extends Exception {}
class ThreeException extends Exception {}
class FourException extends Exception {}
class Five {
public function func($id) {
if(true) {
throw new OneException;
} else {
throw new FourException;
}
}
}
$object = new Five;
$error = null;
try {
$object->func('123');
} catch(OneException $e) {
$error = 'Извините, произошла ошибка';
} catch(TwoException $e) {
$error = 'Извините, произошла ошибка';
} catch(ThreeException $e) {
$error = 'Извините, произошла ошибка';
} catch(FourException $e) {
$error = 'Неправильно введен идентификатор';
}
exit('перенаправление с ошибкой: '.$error);
Как можно видеть в коде выше, он избыточен. А ведь мы просто делаем следующее: создаем объект класса Five и вызываем его метод с нужным параметром. Если у нас будет исключение номер 1, 2 или 3, то пишем одно сообщение. Если же исключение номер 4, то – другое сообщение.
Чтобы сократить код и сделать его более понятным, в PHP 7.1 было сделано следующее улучшение: мы теперь можем писать исключения через прямую палочку :) Т.е. теперь мы можем переписать наш код вот так:
try {
$object->func('123');
} catch(OneException | TwoException | ThreeException $e) {
$error = 'Извините, произошла ошибка';
} catch(FourException $e) {
$error = 'Неправильно введен идентификатор';
}
Код стал заметно меньше, но функционал остался тем же. Если вы его запустите, то получите первое сообщение. Если же вы теперь в методе поменяете true на false, то получите второе сообщение.
Вот такая простая мелочь, но теперь работа с PHP стала намного приятнее, быстрее и легче.
Спасибо за внимание!
-
- Михаил Русаков
Комментарии (1):
Михаил, как ВЫ относитесь к операционной системе Ubuntu
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.