0

我在 PHP 中编写了一个自定义异常类:

<?php

class Custom_Exception extends Exception {

    public function __construct( $title, $message, $code = 0, Exception $previous = null ) {
        parent::__construct( $message, $code, $previous );

        echo '<html>';
        echo '<head>';
        echo '<title>Custom Exception: ' . $title . '</title>';
        echo '</head>';
        echo '<body>';
        echo '<h1>Custom Exception</h1>';
        echo '<hr />';
        echo '<p><strong>Error: </strong>' . $title . '</p>';
        echo '<p><strong>Message: </strong><em>' . $message . '</em></p>';
        echo '<hr />';
        echo '<p>This Exception was raised on: ' . date( 'Y-m-d' ) . ' at ' . date( 'H:i:s' ) . '.';
        echo '</body>';
        echo '</html>';
        http_response_code( $code );

        die();
    }

}

__construct以 结束我的覆盖方法die()以防止输出任何父类“ Exception”消息是一种好习惯吗?

如您所见,它将 HTML 响应输出到浏览器中。我以前从未处理过自定义 PHP 异常,所以我想知道这是否会打扰任何约定等?

4

1 回答 1

0

DCoder 有一个很好的观点,可以将错误发送给您或将其登录到文件中,以便您稍后对其进行分析,但是关于您的问题,死可能有点激烈,最好将应用程序的流程重定向到一个页面以通俗易懂的语言通知发生了错误,管理员将尝试解决它。您可以通过多种方式改写它。

但是,重要的是,客户不应该被错误所困扰或气馁。如果你能解释错误的原因并告诉用户如何解决它,或者不再犯错误并重定向到最后一个好的步骤,那是最好的方法。如果你不能,那么你应该尝试解释并重定向到一个安全但有用的页面,比如主页或带有错误解释和资源的页面,比如搜索机器人、站点地图、导航工具或任何其他可能有帮助的东西。

我会说,永远不要杀死应用程序。

再见

于 2012-10-17T06:01:46.033 回答