为什么这个 PHP 异常没有被捕获?
Why is this PHP exception not caught?
我有这个非常简单的 PHP 8 代码,其中有(自愿的)错误。只是为了看看异常是否被捕获。
try {
$school = $this->schoolRepository->insert($request->all());
$fake = 1 / 0;
return new SchoolResource($school);
} catch (\Exception $e) {
return response()->json('bad request' . $ex->getMessage(), 400);
}
惊喜!未捕获异常。我收到除法错误:
{
"message": "Division by zero",
"exception": "DivisionByZeroError",
"file": "D:\Workspace\school-back-v2\app\Http\Controllers\SchoolController.php",
"line": 48,
"trace": [
为什么没有捕获到这个异常?
DivisionByZeroError
继承自Error
,所以你最好赶上基础接口Throwable
.
catch (\Throwable $e)
更改return response()->json('bad request' . $ex->getMessage(), 400);到 return response()->json('bad request' . $e->getMessage(), 400);
我有这个非常简单的 PHP 8 代码,其中有(自愿的)错误。只是为了看看异常是否被捕获。
try {
$school = $this->schoolRepository->insert($request->all());
$fake = 1 / 0;
return new SchoolResource($school);
} catch (\Exception $e) {
return response()->json('bad request' . $ex->getMessage(), 400);
}
惊喜!未捕获异常。我收到除法错误:
{
"message": "Division by zero",
"exception": "DivisionByZeroError",
"file": "D:\Workspace\school-back-v2\app\Http\Controllers\SchoolController.php",
"line": 48,
"trace": [
为什么没有捕获到这个异常?
DivisionByZeroError
继承自Error
,所以你最好赶上基础接口Throwable
.
catch (\Throwable $e)
更改return response()->json('bad request' . $ex->getMessage(), 400);到 return response()->json('bad request' . $e->getMessage(), 400);