PHP尝试和捕获或@

时间:2014-12-03 09:31:58

标签: php try-catch operator-keyword error-reporting

问题在于不允许app抛出异常而不停止应用程序中的非关键元素(消费者如用户搜索保存到DB的日志历史记录)是否更好地使用此代码:

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 个答案:

答案 0 :(得分:1)

如果代码抛出异常,处理该异常的唯一方法是使用try / catch块。

@code仅限于错误消息;致命错误和异常仍将停止执行代码。

或者,如果您有很多例外情况,可以试试setting your own exception handler,但我不能说这是一个好主意。