Как и в случае с интерфейсами, я попробовал несколько именований чтобы выяснить, нормально ли жить без суффикса "Exception".
Если именовать аккуратно, получается что-то вроде FromattingFailed. То есть правила могут быть:
1. Использовать прошедшее время чтобы показать что уже случилось.
2. Имя должно показывать что случилось что-то плохое.
Что думаете?
Суффикс для исключений
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Суффикс для исключений
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 977
- Зарегистрирован: 2014.08.27, 21:54
Re: Суффикс для исключений
Как и в предыдущем посте, я за префикс. Корневой класс - Exception
в блоке try ... могут быть разные классы, а в catch - только Exception
в плане чтения кода (специально утрирую, чтоб была понятна мысль)
+ опять же в шторме легче найти ...FailedException, вместо ...Failed, перебирая которые вспоминать, что из них Exception, что Interface, что Dto...
Код: Выделить всё
try {
// init bootstrapping phase
$config_file_path = "config.php";
if (!file_exists($config_file_path))
{
throw new Exception("Configuration file not found.");
}
// continue execution of the bootstrapping phase
} catch (Exception $e) {
echo $e->getMessage();
die();
}
в плане чтения кода (специально утрирую, чтоб была понятна мысль)
Код: Выделить всё
try {
$isValid = new FormattingFailed($text)->check();
if (!isValid)
{
throw new FormattingFailedException("NotValid.");
}
} catch (FormattingFailedException $e) {
echo $e->getMessage();
die();
} catch (Exception $e) {
echo $e->getMessage();
die();
}
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: Суффикс для исключений
В отличии от предыдущего поста, здесь я за суффикс. Чтобы было единообразие в нейминге с самим PHP. Всё таки исключения вида `FormattingFailed` это нечто узкоспециализированное, что-то из доменной области нежели действующее на всю систему.
Re: Суффикс для исключений
FormattingFailed в прошедшем времени – это похоже событие, а не исключение.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Суффикс для исключений
Итого пока будем с суффиксом: https://github.com/yiisoft/docs/blob/ma ... eptions.md
Решение до релиза можно поменять.
Решение до релиза можно поменять.
Нравится Yii? Давайте сделаем его лучше!.
Re: Суффикс для исключений
Суффикс Exception, в отличие от интерфейсов, помогает читать код.
Сводим к текстовой информации:
Читаем вслух что написано:
Так как суффикс исключения делает код более осмысленным, то для исключений должны быть суффиксы.
Код: Выделить всё
try {
$this->printFormattedText();
} catch (FormattingFailedException $e) {
echo $e->getMessage();
die();
}
Код: Выделить всё
Try
Print formatted text
Catch formatting failed exception
Echo exception message
Abort script
Код: Выделить всё
Попытаться
Вывести отформатированный текст
Ловим исключение, что форматирование не удалось
Выводим сообщение исключения
Прекращаем работу скрипта
Re: Суффикс для исключений
Блин.. да делай везде суффиксы, как Model,Controller,Exception,Interface и т.д... усё должно быть единообразно...