【发布时间】:2011-06-27 12:40:53
【问题描述】:
我正在为我的应用程序设计一个错误处理系统。 我想以异常为基础,并且我想通过电子邮件收到有关我没有预料到的每个异常的通知。
我想到了一门课:
class My_Exception extends Exception {
private $sendErrorReport = true;
public function __destruct() {
if ($this->sendErrorReport) {
// send the error report by email
}
}
public function cancelErrorReport() {
$this->sendErrorReport = false;
}
}
我想做这样的事情:
try {
do_something_that_can_throw_exception();
catch (My_Exception $e) {
if ($e->getCode() == I_KNOW_WHAT_TO_DO ) {
react_to_exception();
$e->cancelErrorReport();
} else {
show_error_message($e->getMessage());
}
}
所以,基本上,当异常发生并且系统知道该怎么做时,它不会打扰我作为开发人员。但是当系统无法处理某些事情时,我会收到通知。 我不想将通知我的代码放在 catch 子句中,因为我确定我会在某个地方忘记它...
我能确定异常__destuct方法会被调用吗?
异常的__destruct方法是实现这个目标的好方法吗?
有没有更好的方法可以实现这一目标?
【问题讨论】:
标签: php exception destructor