我想创建一个异常来改善我的代码,但是我不知道如何捕获它。
我有一个使用Yii2框架的find()函数的简单示例(因此我可以理解)。
Persons::find()
->select([
'id',
'name',
])
->all();
我想知道如果find()
函数无法完成(例如由于数据库服务器中的问题而无法访问数据库)而导致错误,怎么办?这样我就可以完成w3schools的教学。
答案 0 :(得分:1)
使用try catch,如下所示:
我根据您的情况使用了DbException:
try{
$models = Persons::find()
->select([
'id',
'name',
])
->all();
}catch(\yii\db\Exception $e){
var_dump($e->getMessage()); //Get the error messages accordingly.
}
https://releasebits.blogspot.com/2018/08/using-exceptions-yii2.html
答案 1 :(得分:1)
您可以简单地使用已尝试的try catch。
您可以参考此文档,以了解针对抛出的异常有哪些选择
https://www.yiiframework.com/doc/api/2.0/yii-db-exception
try{
$models = Persons::find()
->select([
'id',
'name',
])
->all();
}catch(\yii\db\Exception $e){
echo $e->getName();
//Get the user-friendly name of this exception
}
您还可以选择获取错误行号或错误代码
$e->getCode()
$e->getLine()
您也可以像下面那样使用try catch with
try
{
}
catch(Exception $e)
{
}
finally
{
// to do something in common like close your file handler in this case, or some resource in general
}