我在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()
覆盖方法是一种好习惯,以防止输出任何父类&#34; Exception
&#34;消息?
如您所见,它会在浏览器中输出HTML响应。我以前从未处理过自定义PHP异常,所以我想知道这是否会影响任何约定等?
答案 0 :(得分:0)
DCoder关于向您发送错误或将其登录到文件中是一个很好的观点,以便您以后可以对其进行分析,但是关于您的问题,死亡可能有点激烈,将应用程序的流重定向到更好一个页面,用简单的语言通知发生了错误,管理员将尝试解决它。你可以在很多方面改写它。
但重要的是,客户不应该被错误所困扰或沮丧。如果您可以解释错误的原因并告诉用户如何解决它,或者不再重复并重定向到最后一个好步骤,这是最好的方法。如果你不能,那么你应该尝试解释并重定向到一个安全但有用的页面,如主页或带有错误说明和资源的页面,如搜索机器人,站点地图,导航工具或任何其他可能会有帮助的事情。
我会说,永远不要杀死应用程序。
再见