【发布时间】:2012-10-17 04:28:28
【问题描述】:
我在 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();
}
}
以die() 结束我的__construct 覆盖方法是否是一种好习惯,以防止输出任何父类“Exception”消息?
如您所见,它将 HTML 响应输出到浏览器中。我以前从未处理过自定义 PHP 异常,所以我想知道这是否会影响任何约定等?
【问题讨论】:
-
这在开发中是可以的,但在生产中不行。一旦你投入生产,不要向客户透露错误细节。只需显示一条通用的“发生错误”消息,记录所有详细信息并将其邮寄给您自己。
标签: php exception-handling die custom-exceptions