Php 处理程序未捕获自动同步和令牌不匹配异常。拉维尔
从那以后,我一直在尝试处理laravel引发的异常。我试过很多方法,但似乎都不管用。以下是我使用的语法:Php 处理程序未捕获自动同步和令牌不匹配异常。拉维尔,php,laravel,error-handling,Php,Laravel,Error Handling,从那以后,我一直在尝试处理laravel引发的异常。我试过很多方法,但似乎都不管用。以下是我使用的语法: public function render($request, Exception $e) { //404 page when a model is not found if ($e instanceof ModelNotFoundException) { return response()->view('errors.404', [], 404);
public function render($request, Exception $e)
{
//404 page when a model is not found
if ($e instanceof ModelNotFoundException) {
return response()->view('errors.404', [], 404);
}elseif ($e instanceof \AuthorizationException) {
return response()->view('errors.403', [], 403);
}elseif ($e instanceof TokenMismatchException) {
Flash::error('Sorry, your session seems to have expired. Please try again.');
return redirect('/');
}elseif ($e instanceof \ErrorException) {
return response()->view('errors.500', [], 500);
}else {
return response()->view('errors.500', [], 500);
}
// return parent::render($request, $e);
}
我包括以下内容:
use Exception;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Session\TokenMismatchException;
use Illuminate\Validation\ValidationException;
use Symfony\Component\HttpKernel\Exception\HttpException;
此外,之前添加了以下内容:
protected $dontReport = [
AuthorizationException::class,
HttpException::class,
ModelNotFoundException::class,
ValidationException::class,
TokenMismatchException::class,
];
有人能帮我吗?我已经在这里呆了好几天了。任何帮助都将不胜感激 原因是框架排除了这些异常,因此未报告。请参阅以获取参考 由于定义排除的异常的属性是受保护的,您应该能够在
app/exceptions/Handler.php
文件中覆盖它。您不应该删除所有这些异常,而应该只删除您真正想要捕获的异常。因此,只需将以下行添加到Handler.php
:
/**
* A list of the internal exception types that should not be reported.
*
* @var array
*/
protected $internalDontReport = [
AuthenticationException::class,
HttpException::class,
HttpResponseException::class,
ModelNotFoundException::class,
ValidationException::class,
];
您还必须为所有类添加use
语句
(请注意,这是Laravel 5.6的排除例外列表-如果您使用的是其他版本,您可能需要使用git或其他分支来查找适用于您的版本的正确列表。)