我可以在不抛出异常的情况下实例化异常吗?

时间:2013-07-11 09:45:05

标签: php php-5.4

我正在使用名为Rollbar的SaaS错误和异常日志记录服务。在我的代码中,我有一个Rollbar静态对象,我可以使用它来报告服务的异常。

例如:

try {
    ...
    throw new SomeException();
    ...
} catch (SomeException $e) {
    Rollbar::report_exception($e);
}

我的问题是:我可以在不抛出异常的情况下实例化异常,就像它是任何其他普通对象一样,是否有任何警告?

我想做这样的事情:

if($api_response_ok) {
    // Do some stuff
    ...
} else {
    Rollbar::report_exception(new ApiException($api_error_msg));
}

// Script execution continues...

2 个答案:

答案 0 :(得分:7)

是的,异常就像任何其他对象一样。

答案 1 :(得分:1)

异常只是扩展Exception类的对象。它们只会在抛出脚本时中断脚本执行。

$exception = new Exception('Die');
//Does not exit here
throw $exception;
//Will exit here