Hay我正在创建这样的代码:
\Log::info("saving log....");
try{
$data = AstronautCandidateLog::insert($request->logs);
}catch (SQLException $e)
{
\Log::info("SQL Exception happened");
}catch (Exception $e)
{
\Log::info("Exception happened");
}
\Log::info("status save data : ". $data);
但似乎我的异常永远不会被击中。那么如果在sql查询中出现错误时如何捕获laravel中的异常...... ??
提前致谢。
答案 0 :(得分:3)
试试这个
try {
//Your code
} catch(\Illuminate\Database\QueryException $ex){
dd($ex->getMessage());
}
OR
use Illuminate\Database\QueryException;
try {
//Your code
} catch(QueryException $ex){
dd($ex->getMessage());
}
答案 1 :(得分:0)
我的情况:在例外类之前添加\,否则它将无法处理
try
{
//write your codes here
}
catch(\Exception $e) {
Log::error($e->getMessage());
}
答案 2 :(得分:0)
确保在控制器中使用Exception库。从那里可以做:
it { is_expected.to callback(:init_country_id).before(:initialize) }
答案 3 :(得分:-1)
要在Laravel中实现异常,只需在控制器顶部添加Exception类即可,
Use Exception;
然后使用try-catch语句包装您希望捕获异常的代码行
try
{
//write your codes here
}
catch(Exception $e)
{
dd($e->getMessage());
}
这一次,如果您正在发出Ajax请求,您还可以以json格式返回错误,请记住在控制器顶部包括Response类。
Use Response;
Use Exception;
然后将代码包装在try-catch语句中,如下所示
try
{
//write your codes here
}
catch(Exception $e)
{
return response()->json(array('message' =>$e->getMessage()));
}
我希望这能解决您的问题,您可以了解有关Laravel和错误处理here
的更多信息