Как мне документировать & quot; trigger_error () & quot; для метода класса?

Если у меня есть следующий метод класса:

class ClassA
{
public function MethodA()
{
trigger_error('An error has occurred.', E_USER_ERROR);
}
}

… то, что является общепринятым способом документирования того, что он может «выдать» (выдать) ошибку, используя trigger_error() явно? Самое близкое, что я нашел, это использовать @throws, или же @exception, Возможно ли, что такое поведение вообще не должно быть документировано или вместо этого включено в само описание метода?

Причина, по которой я задаю этот вопрос о trigger_error потому что я использую пользовательский класс регистрации ошибок, который вызывается пользовательский обработчик ошибок, следовательно, удобно выдавать ошибки времени выполнения и организованно выводить / сохранять их. Должен ли я просто использовать @see trigger_error или же @see ErrorLog (мой пользовательский класс) вместо этого?


РЕДАКТИРОВАТЬ:

Для тех, кто интересуется потоком скриптов, если сработала ошибка: скрипт не прекратить исполнение на E_USER_ERROR,

0

Решение

Скрипт не прекратит выполнение на E_USER_ERROR.

Это может быть вашей большой проблемой. Механизм ошибок PHP довольно … примитивен. В основном он знает только два режима: уведомить разработчика о потенциал проблемы, вызывая уведомление, предупреждение или строгое предупреждение (a.k.a. error), или останавливает сценарий, вызывая фатальную ошибку. Вызывать (фатальную) ошибку, продолжая выполнение скрипта, на самом деле не является его целью.

Функция должна быть просто неофициально задокументирована с «ошибкой триггеров, если X, Y или Z». это типично означает «убьет скрипт, если X, Y или Z». Если вы отвергаете это поведение, это зависит от вас.

Формально документированные ошибки имеют смысл, если эти ошибки могут быть обработаны стандартизированным способом, что очень много исключений. У них есть формальные стандарты документации (@throws) и может обрабатываться гибкими способами (try..catch). Вы действительно должен используйте исключения для той цели, которую вы пытаетесь использовать здесь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]