【发布时间】:2011-02-12 10:45:52
【问题描述】:
catch 不起作用,因为使用 set_exception_handler() 安装了异常处理程序
我需要“catch”才能工作,所以我想我需要以某种方式取消设置异常处理程序。 set_exception_handler(NULL) 之类的东西不起作用。
知道如何取消设置异常处理程序吗?
function my_exception_handler($exception) {
error_log("caught exception: " . $exception->getMessage() );
}
set_exception_handler("my_exception_handler");
// QUESTION: how does on unset it ?
//set_exception_handler(NULL);
try {
throw new Exception('hello world');
error_log("should not happen");
} catch(Exception $e) {
error_log("should happen: " . $e->getMessage());
}
实际输出:
捕获异常:hello world
期望的输出:
应该发生:你好,世界
【问题讨论】:
-
我刚刚尝试了用 print 替换 error_log 的代码,我得到“应该发生:你好世界”。您的服务器配置有什么特别之处吗?
-
我不知道该寻找什么。而且我现在不在工作,所以我无法凝视它。