Yii2:如何使用异常?

时间:2018-08-15 16:09:34

标签: php exception yii2 crud

我想创建一个异常来改善我的代码,但是我不知道如何捕获它。

我有一个使用Yii2框架的find()函数的简单示例(因此我可以理解)。

Persons::find()
    ->select([
        'id',
        'name',
    ])
    ->all();

我想知道如果find()函数无法完成(例如由于数据库服务器中的问题而无法访问数据库)而导致错误,怎么办?这样我就可以完成w3schools的教学。

2 个答案:

答案 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
    }