You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							103 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							103 lines
						
					
					
						
							2.1 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace App\Exceptions;
							 | 
						|
								
							 | 
						|
								use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
							 | 
						|
								use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
							 | 
						|
								use Throwable;
							 | 
						|
								use Illuminate\Validation\ValidationException;
							 | 
						|
								
							 | 
						|
								class Handler extends ExceptionHandler
							 | 
						|
								{
							 | 
						|
								    /**
							 | 
						|
								     * A list of the exception types that are not reported.
							 | 
						|
								     *
							 | 
						|
								     * @var array
							 | 
						|
								     */
							 | 
						|
								    protected $dontReport = [
							 | 
						|
								        //
							 | 
						|
								    ];
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * A list of the inputs that are never flashed for validation exceptions.
							 | 
						|
								     *
							 | 
						|
								     * @var array
							 | 
						|
								     */
							 | 
						|
								    protected $dontFlash = [
							 | 
						|
								        'current_password',
							 | 
						|
								        'password',
							 | 
						|
								        'password_confirmation',
							 | 
						|
								    ];
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Register the exception handling callbacks for the application.
							 | 
						|
								     *
							 | 
						|
								     * @return void
							 | 
						|
								     */
							 | 
						|
								    public function register()
							 | 
						|
								    {
							 | 
						|
										//
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
									/**
							 | 
						|
									 * 报告异常
							 | 
						|
									 * @return bool|void
							 | 
						|
									 */
							 | 
						|
									public function report(Throwable $e): bool
							 | 
						|
									{
							 | 
						|
										if ($this->shouldReport($e) && app()->bound('sentry')) {
							 | 
						|
											app('sentry')->captureException($e);
							 | 
						|
										}
							 | 
						|
										// 判断异常是否需要自定义报告...
							 | 
						|
										return false;
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									public function render($request, Throwable $e)
							 | 
						|
									{
							 | 
						|
										// 表单校验
							 | 
						|
										if ($e instanceof ValidationException) {
							 | 
						|
											$errors = $e->errors();
							 | 
						|
											while (is_array($errors)) {
							 | 
						|
												$errors = current($errors);
							 | 
						|
											}
							 | 
						|
											return response()->json([
							 | 
						|
												'code' => -1,
							 | 
						|
												'msg' => $errors,
							 | 
						|
												'data' => [],
							 | 
						|
												'status' => 500,
							 | 
						|
											]);
							 | 
						|
										}
							 | 
						|
										// 404
							 | 
						|
										if ($e instanceof NotFoundHttpException) {
							 | 
						|
											return response()->json([
							 | 
						|
												'code' => -1,
							 | 
						|
												'msg' => '404 Not Found',
							 | 
						|
												'data' => [],
							 | 
						|
												'status' => 500,
							 | 
						|
											]);
							 | 
						|
										}
							 | 
						|
										//TypeError && ParseError && Exception
							 | 
						|
										/*if ($e instanceof \TypeError || $e instanceof \ParseError || $e instanceof \Exception) {
							 | 
						|
											return response()->json([
							 | 
						|
												'code' => -1,
							 | 
						|
												'msg' => $e->getMessage(),
							 | 
						|
												'data' => [],
							 | 
						|
												'status' => 500,
							 | 
						|
												'file' => $e->getFile(),
							 | 
						|
												'line' => $e->getLine(),
							 | 
						|
											]);
							 | 
						|
										}
							 | 
						|
										//Exception
							 | 
						|
										if ($e instanceof \Error) {
							 | 
						|
											return response()->json([
							 | 
						|
												'code' => -1,
							 | 
						|
												'msg' => $e->getMessage(),
							 | 
						|
												'data' => [],
							 | 
						|
												'status' => 500,
							 | 
						|
												'file' => $e->getFile(),
							 | 
						|
												'line' => $e->getLine(),
							 | 
						|
											]);
							 | 
						|
										}*/
							 | 
						|
										return parent::render($request, $e);
							 | 
						|
									}
							 | 
						|
								}
							 |