我想在我的项目中使用两种不同的异常:
致命异常。如果出现意外错误,就像mysql查询失败一样,我想抛出这种异常,而不必抓住它。此异常意味着我需要采取一些操作,例如记录消息,然后使用CodeIgniter的show_error()函数显示错误。脚本应该在不继续的情况下退出。
错误异常。如果用户做了一些不允许的事情,例如将字母输入数字字段或访问他没有权限的页面,则应该抛出并捕获此异常。
我想在整个项目中使用这两种异常。 2号很清楚,但我怎么去做异常1?没有必要为每个try块都有两个catch块会很棒,因为第一种类型是全局的并且应该始终相同:log message,show error,exit。最后,在codeigniter中,扩展Exception类的正确位置在哪里?
感谢。
答案 0 :(得分:0)
致命异常
The link posted by Sunil above非常适合全球处理致命异常。您希望在抛出这些异常时非常小心,并确保对最终用户而言,该网站看起来并不可怕并且已经破碎 - humoring the user is always a good idea。
错误例外
我认为你最好 不 将数字字段中的文字等错误视为异常,因为 不会破坏正常流程该计划的说明。
如果用户在数字字段中输入alpha并提交表单,则应用程序 期望 用户可能会提供垃圾数据,并重复输入过程,这是正常的流量。
以下是我在代码点火器中处理方案2的方法:
CI_Log
/application/libraries/MY_Log
MY_Log::$logs
以在数组中存储消息MY_Log::get_logs()
,然后将其传递给显示日志级别的相应message boxes的视图我还实现了一个名为error_log
的自定义日志级别。这适用于我想在不显示用户的情况下发送到日志文件的任何内容。