0

我听说将所有错误转换为异常是一个好习惯。我完全同意这一点,该解决方案的众多优点之一是我只有一个处理程序,而不是两个单独的处理程序——用于错误和异常。

但是,将通知/警告转换为异常会在发生异常时停止脚本执行。这是预期的行为吗?

4

2 回答 2

2

您必须小心使用异常处理错误。对此有两种思想流派。

一所学校指出,对错误使用异常是一件坏事,通常应谨慎使用异常,因为它们可能导致控制流混乱。

另一所学校喜欢它们,因为必须处理异常,并且它们可以防止您的代码被 if 语句弄乱。

无论如何,如果您使用异常,您必须决定正确处理。当你抓住它们时会发生什么?你能恢复吗?你将如何康复?你会优雅地终止吗?

简单地使用异常并不是故事的结局,也不是​​很长的一段时间。

于 2012-11-29T17:05:22.593 回答
0

您可以捕获异常。示例函数:

function myFunction($num){
    if(!is_int($num)){
        throw new Exception('Int expected. ' . gettype($num) . ' given instead.');
    }
}

然后捕获任何可能会或可能不会抛出的异常(如果捕获它们是有意义的):

try{
    myFunction('Hello?');
}
catch(Exception $e){
    //Do something
    var_dump($e);
}

您还应该查看函数set_exception_handler

如果在 try/catch 块中未捕获到异常,则设置默认异常处理程序。调用 exception_handler 后将停止执行。

于 2012-11-29T17:06:28.723 回答