好多同学说yii2捕获不到异常,看了大部分问题,都是因为对catch的理解不正确造成的,例如问题:
//a文件:
function a() {
throw new \yii\web\HttpException('我是数据库异常');
}
//b文件:
use yii\db\Exception;
try{
a();
}
catch(Exception $e)
{
echo "捕获到异常了";
}
然而并没有输出捕获到异常了
,因为catch
的Exception
实际指的是捕获yii\db\Exception
抛出的异常,不能捕获HttpException抛出的异常。
yii
中所有异常都是继承于Exception
,所以有两种改写方法。
方法一:
catch(\yii\web\HttpException $e)
方法二:
catch(\Exception $e)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。