0

我想将通知转换为异常。我将整个网站放在 try-catch 块中 - 每个错误(在 try 块中)都会调用 set_error_handler() 方法,该方法将抛出新的 ErrorException。然后捕获异常,并显示正确的消息。

接下来应该发生的是 - 应该执行 try 块内 E_NOTICE 之后的所有内容。当下一个错误发生时,一切都会以同样的方式再次发生,直到 try 块结束。

但是,在捕获到异常后,try 块似乎会中断。

如何处理?

4

1 回答 1

2

在引发异常的地方,执行在try块中停止。如果存在与异常(或所有异常)匹配的捕获,则运行该块。此时,程序在 catch之后继续(如果它是程序的结尾,则导致它退出)。它无法在 try 部分中从中断处继续。

抛出异常是不可恢复的,直到它被捕获(如果是)。如果您想从中恢复,您必须在您希望代码恢复的那一点之前捕获它。因此,您只需要一次以上的尝试/捕获,而不是整个站点的一次。或者不要在每个 E_NOTICE 上抛出异常。我能问一下为什么您首先希望通知生成异常吗?可能有更好的方法来完成你想要做的事情。

于 2012-11-29T20:31:46.780 回答