PHP Попробуйте и поймать или @

Вопрос заключается в том, чтобы не разрешать приложению исключать исключение и не останавливать приложение в некритических элементах (например, журнал журналов поиска пользователей, сохраненных в БД), лучше ли использовать этот код:

try {
 /* some code here that will throw an exception at any error/miss-configuration because it is the 
 way this module works */

 $user = Sentry::getUser();
} catch (Exception $e) {}

или:

@$user = Sentry::getUser();

Это просто теоретический код, но на самом деле Sentry - хороший пример, чтобы показать, что я имею в виду. В этом случае, если пользователь не зарегистрирован, Sentry выдает исключение.

Поскольку я сказал это только о коде, который не критичен для приложения, и я не буду злоупотреблять.

Очевидно, что лучший подход - написать код для предотвращения такой ситуации вообще. Иногда, однако, необходимо система stfu :)

1 ответ

Если код генерирует исключение, единственный способ справиться с блоком try/catch.

@code только подавляет сообщения об ошибках; фатальные ошибки и исключения будут по-прежнему прекращать выполнение кода.

Кроме того, если у вас есть много исключений, вы можете попробовать установить свой собственный обработчик исключений, но я не могу сказать, что это хорошая идея.

licensed under cc by-sa 3.0 with attribution.