我想知道Laravel / PHP是否有办法减少try-catch逻辑。例如,我的控制器中有两个方法:
商店方法
public function store(Request $request){
try {
$order = Order::create($request);
} catch(\Exception $e) {
return response()->json([
"message" => 'An error has occured',
"error" => $e->getMessage(),
], 500);
}
}
更新方法
public function update(Request $request){
try {
$order = Order::update($request);
} catch(\Exception $e) {
return response()->json([
"message" => 'An error has occured',
"error" => $e->getMessage(),
], 500);
}
}
可以看出,try-catch在两种情况下都是相同的,返回相同的错误格式。
有没有办法提取这个逻辑并将所有控制器方法包装在同一个try-catch块中?
答案 0 :(得分:2)
您可以在render
的{{1}}方法中捕获并创建自己的回复:
/app/Exceptions/Handler.php
要小心,因为这种方法会影响所有捕获的异常