yii2:抛出新异常的正确方法

yii2: Proper way to throw new exception

为了测试,我在我的模型中添加了这段代码,同时设置 debug = true 和 false。

if($packagedays < 1)
     {
      throw new \yii\base\Exception( "package days cannot be less than 1" );
     }

现在当 Yii 调试为真时:我得到

异常 – yii\base\Exception 包裹天数不能少于1

但是当我将调试设置为 false 时 我正进入(状态 例外 An internal server error occurred.

Web 服务器正在处理您的请求时发生上述错误。

我想要的是替换An internal server error occurred.package days cannot be less than 1debug=false

我在这里缺少什么?

谢谢。

你应该简单地抛出一个 UserException :

UserException is the base class for exceptions that are meant to be shown to end users.

阅读更多:http://www.yiiframework.com/doc-2.0/yii-base-userexception.html