2014-12-03 4 views
0

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

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 только подавляет сообщения об ошибках; фатальные ошибки и исключения будут по-прежнему прекращать выполнение кода.

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