36 lines
915 B
PHP
36 lines
915 B
PHP
<?php
|
|
namespace support;
|
|
|
|
use Throwable;
|
|
use Webman\Http\Request;
|
|
use Webman\Http\Response;
|
|
use Webman\Exception\ExceptionHandler as BaseExceptionHandler;
|
|
use app\common\exception\BusinessException;
|
|
|
|
class ExceptionHandler extends BaseExceptionHandler
|
|
{
|
|
public function render(Request $request, Throwable $exception): Response
|
|
{
|
|
$code = $exception->getCode();
|
|
$message = $exception->getMessage();
|
|
$data = null;
|
|
|
|
if ($exception instanceof BusinessException) {
|
|
$code = $code ?: 400;
|
|
$data = $exception->getData();
|
|
} else {
|
|
$code = 500;
|
|
$message = 'Server internal error';
|
|
if (config('app.debug')) {
|
|
$message = $exception->getMessage();
|
|
}
|
|
}
|
|
|
|
return json([
|
|
'code' => $code,
|
|
'msg' => $message,
|
|
'data' => $data,
|
|
]);
|
|
}
|
|
}
|