Dha*_*han 5 php exception laravel laravel-5
您好,我是 Laravel 的新手,正在使用自定义异常处理。
我已经捕获了据我所知的所有异常,并且工作正常。根据我的理解,set_exception_handler用于处理未捕获的异常。现在我有两个问题:
1)我必须知道我的理解是否set_exception_handler正确。
2)如何在laravel 5中实现处理未捕获的异常
set_exception_handler这就是我在控制器中实现的方式
class SearchController extends BaseController{
public function getTitleMessage($exc){
var_dump("set exception handler".$exc);
return json_encode("Error");
}
public function genericSearch(){
//Bussiness logic goes here
set_exception_handler('getTitleMessage');
throw new Exception("Search Failed");
}
Run Code Online (Sandbox Code Playgroud)
set_exception_handler这显示了一个不是有效回调的错误。所以我将代码更改为
set_exception_handler(array($this,'getTitleMessage'));
Run Code Online (Sandbox Code Playgroud)
但也不适合我。有人指导我如何在 laravel 控制器中实现它。提前致谢
Laravel 已经使用了全局异常处理程序
看一下vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php文件;正如您在bootstrap方法中看到的,Laravel 已经使用set_exception_handler将该方法设置handleException为全局异常处理程序
App\Exceptions\Handler::render当引发未捕获的异常时,该方法最终将被调用。
因此,如果您想以某种方式处理未手动捕获的异常,您所要做的就是将代码添加到该render方法中:
应用程序\异常\Handler.php
public function render($request, Exception $e)
{
//DO WATHEVER YOU WANT WITH $e
return parent::render($request, $e);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |