Страница 1 из 1

Суффикс для исключений

Добавлено: 2019.07.04, 20:02
samdark
Как и в случае с интерфейсами, я попробовал несколько именований чтобы выяснить, нормально ли жить без суффикса "Exception".

Если именовать аккуратно, получается что-то вроде FromattingFailed. То есть правила могут быть:

1. Использовать прошедшее время чтобы показать что уже случилось.
2. Имя должно показывать что случилось что-то плохое.

Что думаете?

Re: Суффикс для исключений

Добавлено: 2019.07.04, 21:34
Loveorigami
Как и в предыдущем посте, я за префикс. Корневой класс - Exception

Код: Выделить всё

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 ... могут быть разные классы, а в catch - только Exception

в плане чтения кода (специально утрирую, чтоб была понятна мысль)

Код: Выделить всё

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();
}

+ опять же в шторме легче найти ...FailedException, вместо ...Failed, перебирая которые вспоминать, что из них Exception, что Interface, что Dto...

Re: Суффикс для исключений

Добавлено: 2019.07.05, 06:28
chungachguk
В отличии от предыдущего поста, здесь я за суффикс. Чтобы было единообразие в нейминге с самим PHP. Всё таки исключения вида `FormattingFailed` это нечто узкоспециализированное, что-то из доменной области нежели действующее на всю систему.

Re: Суффикс для исключений

Добавлено: 2019.07.05, 16:13
ElisDN
FormattingFailed в прошедшем времени – это похоже событие, а не исключение.

Re: Суффикс для исключений

Добавлено: 2019.07.05, 17:32
samdark
Итого пока будем с суффиксом: https://github.com/yiisoft/docs/blob/ma ... eptions.md

Решение до релиза можно поменять.

Re: Суффикс для исключений

Добавлено: 2019.07.08, 13:11
Nex-Otaku
Суффикс 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: Суффикс для исключений

Добавлено: 2019.10.16, 04:30
mat.twg
Блин.. да делай везде суффиксы, как Model,Controller,Exception,Interface и т.д... усё должно быть единообразно...