抛出异常终止脚本?

时间:2010-05-09 07:30:16

标签: php

我想知道在php中引发的异常是否会终止php中的脚本?

因为当我保存已在doctrine中创建的条目时,它会引发异常。

我捕获异常并忽略它(以便用户不会看到它),但脚本似乎已被终止。

有没有办法捕获异常并保持脚本活着?

感谢

1 个答案:

答案 0 :(得分:2)

您需要包含可能在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块进入,则会发生上述情况。