我有這個非常簡單的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": [
為什么這個例外沒有被捕獲?
uj5u.com熱心網友回復:
DivisionByZeroError繼承自Error,所以你最好抓住基介面Throwable。
catch (\Throwable $e)
uj5u.com熱心網友回復:
更改回傳 response()->json('bad request' . $ex->getMessage(), 400); 回傳 response()->json('bad request' . $e->getMessage(), 400);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/426263.html
上一篇:為什么這個小程式給出“公共語言運行時檢測到無效程式”?
下一篇:無法通過此例外
