我要做的就是验证查询.
'SELECT * from table_that_does_not_exist'
Run Code Online (Sandbox Code Playgroud)
如果没有错误,我想知道它失败了所以我可以返回一个响应,指出"错误:表不存在"或一般错误.
Tim*_*wis 44
捕获任何sql语法或查询错误的最简单方法是在查询Illuminate\Database\QueryException提供闭包后捕获:
try {
$results = \DB::connection("example")
->select(\DB::raw("SELECT * FROM unknown_table"))
->first();
// Closures include ->first(), ->get(), ->pluck(), etc.
} catch(\Illuminate\Database\QueryException $ex){
dd($ex->getMessage());
// Note any method of class PDOException can be called on $ex.
}
Run Code Online (Sandbox Code Playgroud)
如果有任何错误,程序将die(var_dump(...))满足其需要.
注意:对于命名空间,您需要先将\该类作为use语句包含在内.
如果你想捕获所有类型的数据库异常,你可以在 Laravel 上捕获它 Exception Handler
if ($exception instanceof \PDOException) {
# render a custom error
}
Run Code Online (Sandbox Code Playgroud)
有关如何使用 laravel 的更多详细信息,Exception Handler请查看https://laravel.com/docs/7.x/errors
使用try-catch语句包装希望捕获异常的代码行
try
{
//write your codes here
}
catch(Exception $e)
{
dd($e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)
不要忘记在控制器顶部包含Exception类,方法是说
Use Exception;
Run Code Online (Sandbox Code Playgroud)
*_*лов 6
Laravel 8.x
try {
$model->save(); // Use Eloquent: https://laravel.com/docs/8.x/eloquent
} catch (\Throwable $e) {
return 'My error message';
}
Run Code Online (Sandbox Code Playgroud)
注* 需注明\Throwable $e否Throwable $e。
| 归档时间: |
|
| 查看次数: |
49422 次 |
| 最近记录: |