【发布时间】:2017-01-06 20:33:06
【问题描述】:
我有以下发送电子邮件的方法:
Mail::send('emails.configuration_test', array(), function($email)use($request){
$email->to($request->test_address)->subject('Configuration Test');
});
如果出现上述错误,我希望能够捕获异常。当我使用以下内容时:
try{
Mail::send('emails.configuration_test', array(), function($email)use($request){
$email->to($request->test_address)->subject('Configuration Test');
});
}
catch(Exception $e){
// Never reached
}
异常永远不会被捕获。相反,如果 send() 方法出错,我会得到一个 Laravel 堆栈跟踪作为响应。
在这种情况下如何捕获异常?
【问题讨论】:
-
如果文件是命名空间的,你需要
catch(\Exception $e)(或者把use Exception放在文件的顶部)。现在,它可能正在捕获类似App\Http\Controllers\Exception的内容。 php.net/manual/en/language.namespaces.php -
或者在顶部导入。我认为他有。
-
@devk 如果他在
catch(Exception $e)之后得到堆栈跟踪,他没有。 -
@ceejayoz 够公平的。我以为你会收到 Laravel 异常消息。
-
@devk 所有 Laravel 异常最终都是根
\Exception的子类(或子子子子类),因此如果处理正确,捕获\Exception应该涵盖所有内容。
标签: laravel laravel-5 laravel-mail