2017-03-01 14:33:55 9728次浏览 6条回答 0 悬赏 15 金钱

1, 我定义的几个异常, MsgException ApiException xxxxException

  1. 业务中针对不同的情况抛出不同的异常

配置文件设置

	'components' => [
		'errorHandler' => [
			'errorAction' => 'base/error',
		],
	],

BaseController.php

	public function actions()
	{
		'error' => [
			'class' => 'common\components\ErrorHandler'
		]
	}	

common\components\ErrorHandler.php

	use yii\base\Action;
	
	class ErrorHandler extends yii\base\Action\Action
	{
		public function run()
		{
			 $exception = Yii::$app->getErrorHandler()->exception;
			xxxxx
			xxxxx
		}
	}

问题

在YII_DEBUG 为ture 的时候可以正常使用 进入到common\components\ErrorHandler

当 YII_DEBUG == false的时候 不起作用 输出 500 An internal server error occurred.
是我使用的问题 还是什么问题 谢谢各位

补充于 2017-03-01 14:35

排版有些乱, 没有找到对应编辑按钮,麻烦大家了

  • 回答于 2017-03-01 15:52 举报

    生产环境哪能随便抛出具体的错误信息。
    这个给访客看到是有很大风险的。

    2 条回复
    回复于 2017-03-02 11:27 回复

    我不是抛出错误, 我想的是自己处理错误信息, 可能我没说明白

    回复于 2017-03-02 11:54 回复

    YII_DEBUG == false 这是生产环境了,默认只显示有错误,不会显示具体错误信息。
    处理错误你要去测试环境。

    觉得很赞
  • 回答于 2017-03-01 22:35 举报

    楼上正解,生产环境要保持神秘感

    2 条回复
    回复于 2017-03-02 11:28 回复

    神秘感是没问题, 我想处理这些神秘

    回复于 2017-03-02 11:40 回复

    开发上线了 不应该在线上服务器处理错误了吧,应该放在开发服务器上测试才对,如果非得线上测试,那就打开yii_debug开关吧

  • 回答于 2017-03-02 08:52 举报

    你是要处理错误?建议去看看我的帖子:
    Yii2整站的统一错误处理控制器设计

    2 条回复
    回复于 2017-03-02 11:30 回复

    稍微看了一下, 我是想处理自定义处理异常, 在方法中添加exit是能解决问题, 直觉上在代码中出现exit 是一个不明智的选择, 在不了解框架流程,后续操作 日志记录等等中, 等于中断

    回复于 2017-03-02 11:31 回复

    我想接收的是 在调用内部接口, db连接失败等异常处理

  • 回答于 2017-03-02 16:29 举报

    入口打开debug就可以了,我的接口就是,
    defined('YII_DEBUG') or define('YII_DEBUG', true);

  • 回答于 2017-03-14 09:33 举报

    楼主我了解你的意思。http://www.codegong.com/document/49
    你不就是要这个嘛。

  • 回答于 2017-12-27 16:25 举报

    楼主 我想问一下 APP_DEBUG在哪写...

您需要登录后才可以回答。登录 | 立即注册
andy-yii2
职场新人

andy-yii2

注册时间:2017-02-03
最后登录:2017-03-02
在线时长:3小时23分
  • 粉丝1
  • 金钱35
  • 威望0
  • 积分65

热门问题