我试图在我的应用程序中实现异常处理。为此,Laravel框架有自己的机制来处理异常,使用report和render方法。但是要实现异常,我需要跟踪异常的来源,例如特定页面,路由等。为此,我需要传递url报告和呈现方法,但无法这样做。为了在下面的报告和渲染功能中实现这一点,需要做些什么?
public function report(Exception $e)
{
parent::report($e);
}
public function render($request, Exception $e)
{
/* Token mismatch Exception handler start */
if ($e instanceof 'Illuminate'Session'TokenMismatchException) {
return response()->view('errors.sessionExpire', [], 500);
}
/* Token mismatch Exception handler start */
return parent::render($request, $e);
}
从您自己的示例中可以看到,在参数列表中有一个Request实例。Request包含所有特定于请求的细节,比如当前路由,URL等等。
$request->url(); // Current request URL
$request->fullUrl(); // With query parameters
$request->route(); // Get the route closure for this request path
你也可以创建你自己的异常类,可以接受任意多的参数!
还有一种不太舒服的方法——你可以通过异常跟踪。
您需要使用Exception::getTrace
var_dump($e->getTrace());
上面的行会给你关于异常的所有细节。
public function report(Exception $e){
echo '<pre>'; // add this line
print_r($e->getTrace()); // add this line
parent::report($e);
}