+namespace App\Exceptions; use App\Library\Response; use Exception; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Illuminate\Support\Facades\Log; class Handler extends ExceptionHandler { protected $dontReport = array(); protected $dontFlash = array('password', 'password_confirmation'); public function report(Exception $sp8f27c2) { parent::report($sp8f27c2); } private function msg($spd5cc4d, $sp06fc7d, $spc3ee59) { return $spd5cc4d->isXmlHttpRequest() ? response()->json(array('message' => $sp06fc7d), $spc3ee59) : response()->view('errors._', array('code' => $spc3ee59, 'message' => $sp06fc7d), $spc3ee59); } public function render($spd5cc4d, Exception $spece20f) { if ($spece20f instanceof \Illuminate\Database\Eloquent\ModelNotFoundException) { return $this->msg($spd5cc4d, '记录未找到', 404); } elseif ($spece20f instanceof \Illuminate\Auth\AuthenticationException) { return $this->msg($spd5cc4d, '您需要登录您的账户再进行此操作', 401); } elseif ($spece20f instanceof \Illuminate\Auth\Access\AuthorizationException) { return $this->msg($spd5cc4d, '未授权的操作', 403); } elseif ($spece20f instanceof \Illuminate\Validation\ValidationException) { return parent::render($spd5cc4d, $spece20f); } elseif ($spece20f instanceof \Illuminate\Session\TokenMismatchException) { return $this->msg($spd5cc4d, '请刷新页面后重试', 403); } elseif ($spece20f instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException) { return $this->msg($spd5cc4d, '页面未找到', 404); } elseif ($spece20f instanceof \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException) { return $this->msg($spd5cc4d, '请求方法不允许', 405); } elseif ($spece20f instanceof \Symfony\Component\HttpKernel\Exception\ServiceUnavailableHttpException) { Log::error('Caught a ServiceUnavailableHttpException', array('Exception' => $spece20f)); return $this->msg($spd5cc4d, '当前服务不可用,请稍后重试', 503); } elseif ($spece20f instanceof \Symfony\Component\HttpKernel\Exception\HttpException) { $sp6f36ad = $spd5cc4d->isXmlHttpRequest(); switch ($sp6f36ad) { case 429: return $this->msg($spd5cc4d, '您的请求过于频繁,请稍后重试', $sp6f36ad); break; default: Log::error('Caught a UnknownHttpException', array('Exception' => $spece20f)); return $this->msg($spd5cc4d, '当前服务不可用,请稍后重试', $sp6f36ad); } } Log::error('Uncaught Exception', array('Exception' => $spece20f)); if (config('app.debug')) { return parent::render($spd5cc4d, $spece20f); } else { return $this->msg($spd5cc4d, '未知错误,请查看错误日志(storage/logs)', 500); } } }
0 commit comments