php - : Is this a good practice?异常(exception)

标签 php language-agnostic exception exception-handling error-handling

这是用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异常只是错误页面编译器。

我可能只是个 Nerd ,但是您认为这是报告错误的好方法吗?如果可以,那么您可以建议一种更好的方法来编写此错误吗?

谢谢

最佳答案

您将Exceptions用于页面逻辑,我个人认为这不是一件好事。应该使用异常来表示何时发生不良或意外情况,而不是控制错误页面的输出。如果要基于异常生成错误页面,请考虑使用set_exception_handler。任何未捕获的异常都会通过您指定的任何回调方法运行。请记住,这不会阻止异常的“致命性”。通过回调传递异常后,任何未捕获的异常发生后,执行都会像平常一样停止。

关于php - : Is this a good practice?异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/103583/

相关文章:

language-agnostic - 弱类型相对于强类型的优势

algorithm - 匹配颜色的最佳算法。

c# - 如何在调用其他构造函数之前抛出 ArgumentNullException

java - 与 Java 中的 Exception 与 Throwable 相关的开销

php - Centos 5 上的慢 cron 作业

php - 自动包含缺少的功能?

php - 无法重新声明类 - 检查类是否已存在

php - 在 Woocommerce 中查找并显示产品自定义字段值

algorithm - 如何用不相交的恒定半径圆覆盖平面中的一组圆?

java 流 : elegant way to filter according an exception is thrown