54 lines
1.4 KiB
PHP
54 lines
1.4 KiB
PHP
|
<?php
|
|||
|
|
|||
|
namespace App\Exceptions;
|
|||
|
use App\Api\Helpers\ExceptionReport;
|
|||
|
use Exception;
|
|||
|
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
|||
|
|
|||
|
class Handler extends ExceptionHandler
|
|||
|
{
|
|||
|
protected $dontReport = [
|
|||
|
//
|
|||
|
];
|
|||
|
|
|||
|
/**
|
|||
|
* A list of the inputs that are never flashed for validation exceptions.
|
|||
|
*
|
|||
|
* @var array
|
|||
|
*/
|
|||
|
protected $dontFlash = [
|
|||
|
'password',
|
|||
|
'password_confirmation',
|
|||
|
];
|
|||
|
|
|||
|
/**
|
|||
|
* Report or log an exception.
|
|||
|
*
|
|||
|
* @param \Exception $exception
|
|||
|
* @return void
|
|||
|
*/
|
|||
|
public function report(Exception $exception)
|
|||
|
{
|
|||
|
parent::report($exception);
|
|||
|
}
|
|||
|
public function render($request, Exception $exception)
|
|||
|
{
|
|||
|
//ajax请求我们才捕捉异常
|
|||
|
if ($request->ajax()){
|
|||
|
// 将方法拦截到自己的ExceptionReport
|
|||
|
$reporter = ExceptionReport::make($exception);
|
|||
|
if ($reporter->shouldReturn()){
|
|||
|
return $reporter->report();
|
|||
|
}
|
|||
|
if(env('APP_DEBUG')){
|
|||
|
//开发环境,则显示详细错误信息
|
|||
|
return parent::render($request, $exception);
|
|||
|
}else{
|
|||
|
//线上环境,未知错误,则显示500
|
|||
|
return $reporter->prodReport();
|
|||
|
}
|
|||
|
}
|
|||
|
return parent::render($request, $exception);
|
|||
|
}
|
|||
|
}
|