【发布时间】:2020-02-16 08:00:58
【问题描述】:
我目前正在和我的朋友一起做一个项目。他遵循这种编写代码的方法。是好还是坏?我也不是经验丰富的开发人员。
public function store(Request $request)
{
try
{
$comment = new TicketComment();
$comment->content = $request['comment'];
$comment->user_id = Auth::user()->id;
$comment->ticket_id = $request['ticketId'];
$comment->save();
$ticket = Ticket::where('id', '=', $comment->ticket_id)->first();
$ticket->updated_at = $comment->created_at;
$ticket->update();
}
catch(Exception $e)
{
request()->session()->flash('unsuccessMessage', 'Failed to add comment !!!');
return redirect()->back();
}
request()->session()->flash('successMessage', 'Comment has been successfully added !!!');
return redirect()->back();
}
【问题讨论】:
-
是的,这里最好有
try-catch屏蔽 -
@Ronak Dhoot 你能解释一下原因吗?
-
不,您不需要
try-catch块。正如下面的答案中提到的,Laravel 确实有自己的错误处理系统,因此任何抛出的异常都会被 Laravel 捕获并报告。话虽如此,try-catch块,在这种情况下,有利于向用户显示更具体的错误,但它会以不记录底层错误的堆栈跟踪为代价。从长远来看,在当前状态下,调试代码会更加困难,因为您会知道出了问题,但您不知道发生了什么。
标签: php laravel exception try-catch