0
我不知道在PHP中抛出的异常将终止在PHP脚本?异常抛出终止脚本?
因为当我保存已经在教义中创建的条目,它会引发异常。
我捕捉到异常并忽略它(以便用户不会看到它),但脚本似乎被终止。
有没有办法捕捉异常并保持脚本活着?
感谢
我不知道在PHP中抛出的异常将终止在PHP脚本?异常抛出终止脚本?
因为当我保存已经在教义中创建的条目,它会引发异常。
我捕捉到异常并忽略它(以便用户不会看到它),但脚本似乎被终止。
有没有办法捕捉异常并保持脚本活着?
感谢
你需要用函数调用(一个或多个)可以在一个try...catch
块抛出异常。
class EvilException extends Exception {}
class BadException extends Exception {}
function someMethodThatMayThrowException() {
...
...
throw new EvilException("I am an evil exception. HAHAHAHA");
}
try {
someMethodThatMayThrowException();
} catch(BadException $e) {
//deal with BadException here...
} catch(EvilException $e) {
//deal with EvilException here...
throw new Exception("will be caught in next catch block");
} catch(Exception $e) {
echo $e->getMessage(); //echoes the string: "will be caught in next catch block"
}
如果发现异常,脚本将不会终止。如果抛出的异常没有跳转到catch
块,上述情况就会发生。
+1您还可以在'catch'块中再次抛出异常以传递它。 – 2010-05-09 07:48:00
是的,我在最后一个问题中展示了如何做到这一点。 http://stackoverflow.com/questions/2796863/unknown-exception-error-in-php/2796903#2796903 – 2010-05-09 07:31:11
是的异常将终止脚本。您可能会从catch块中抛出另一个异常,或者另一个错误可能导致脚本终止。调试我的朋友! :) – Andreas 2010-05-09 07:38:25