这是用PHP编写的,但它确实与语言无关.
try { try { $issue = new DM_Issue($core->db->escape_string($_GET['issue'])); } catch(DM_Exception $e) { throw new Error_Page($tpl, ERR_NOT_FOUND, $e->getMessage()); } } catch(Error_Page $e) { die($e); }
是嵌套尝试,抓住一个好的做法跟随?对于错误页面来说似乎有点笨重 - 但是如果发生错误,我的Issue Datamanager会抛出异常并且我认为这是一种错误检测的好方法.
Error_Page异常只是一个错误页面编译器.
我可能只是迂腐,但你认为这是一个报告错误的好方法,如果是这样,你能建议一个更好的方法来写这个吗?
谢谢
您正在使用页面逻辑的例外,我个人认为这不是一件好事.应该使用异常来指示发生错误或意外事件的时间,而不是控制错误页面的输出.如果要基于异常生成错误页面,请考虑使用set_exception_handler.任何未捕获的异常都通过您指定的任何回调方法运行.请记住,这并不能阻止异常的"致命性".在通过回调传递异常后,执行将在任何未捕获的异常后正常停止.