在PHP中将错误转换为异常 - 脚本执行

时间:2012-11-29 17:02:19

标签: php oop

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

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

2 个答案:

答案 0 :(得分:2)

您必须小心使用异常进行错误处理。关于此,有两种思想流派。

一所学校表示,使用错误例外是一件坏事,一般情况下应该谨慎使用例外,因为他们可能会引起控制混乱。

另一所学校喜欢他们,因为必须处理例外情况,并且他们会使代码不会被if语句弄得乱七八糟。

在任何情况下,如果您使用例外,您必须决定正确处理。当你抓住它们会发生什么?你能恢复吗?你将如何恢复?你会优雅地终止吗?

简单地使用例外并不是故事的结局,而不是长篇大论。

答案 1 :(得分:0)

你可以捕捉异常。示例功能:

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

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

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

您还应该查看函数set_exception_handler

  

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