PHP中有什么例外,什么是try和catch?

Jas*_*vis 4 php exception-handling class object try-catch

我很擅长在PHP中使用对象/类,我很好奇EXCEPTIONS,TRYCATCH

在下面的示例中,我显示了所有3个正在使用中.显然,异常是某种触发错误的方式,但我不明白为什么?在下面的代码中,我可以轻松地显示某种错误或没有异常部分的东西吗?

下面的示例是使用try和catch的示例.在我看来,与使用if/else相同.我可能是错的,这就是我在不知情的情况下看到它们的方式,我意识到你可以在PHP中编写任何代码而不使用它们,那么原因是什么,使用这些东西与传统方法有什么好处?

<?PHP
// sample of using an exception
if($something === $something_else){
    //do stuff
}else if($something === $something_else_again){
    //do stuff
}else{
    throw new Exception('Something went wrong!');
}
Run Code Online (Sandbox Code Playgroud)

试着抓住

//and try and catch
try{
    $thumb = PhpThumbFactory::create('/path/to/image.jpg');
}
catch (Exception $e){
    // handle error here however you'd like
}
?>
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 6

简而言之,异常是" 改变程序正常执行流程的特殊条件 " (引用维基百科)


您可能会对(至少)这几篇文章感兴趣:

他们应该给你一些有趣的元素 - 特别是第二个,"php中的例外"


其中一个优点(这是基本思想的一部分)是:

  • 你在try块中有"普通"代码
  • 并且"处理问题"代码的最大部分是在catch块中
  • 这意味着在"正常"代码中间减少"处理问题"代码
  • 并且还允许您重新组合"处理问题"部分代码