什么是PHP中的异常,什么是try-and-catch?

什么是PHP中的异常,什么是try-and-catch?,php,exception-handling,class,object,try-catch,Php,Exception Handling,Class,Object,Try Catch,我对在PHP中使用对象/类非常陌生,我对异常、尝试和捕获非常好奇 在下面的示例中,我使用了所有3个。显然,异常是触发错误的某种方式,但我不明白为什么?在下面的代码中,我可以很容易地显示某种错误或没有异常部分的东西 下面是一个使用try-and-catch的示例。在我看来,这与使用if/else是一样的。我可能错了,这只是我在不知道任何事情的情况下看待它们的方式,我意识到你可以在PHP中编写任何东西而不使用这些东西,那么原因是什么,使用这些东西与传统方式相比有什么好处吗 <?PHP // s

我对在PHP中使用对象/类非常陌生,我对异常、尝试和捕获非常好奇

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

下面是一个使用try-and-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!');
}

异常是将错误处理代码与“常规”代码分开的一种方法。基本上,这种策略可以让您编写一块代码,而不必担心会出现什么问题(即
try
块)。然后,稍后,捕获在块执行期间可能抛出的异常,并适当地处理它们。这是一种更干净的错误处理方式。

简而言之,例外情况是“改变正常程序执行流程的特殊情况”(引用维基百科)


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

它们应该给您一些有趣的元素——特别是第二个元素,“php中的异常是什么?”


优势之一(这是基本理念的一部分)是:

  • try
    块中有“正常”代码
  • “处理问题”代码的最大部分是
    catch
  • 这意味着在“正常”代码
  • 中间的“处理问题”代码更少。
  • 还允许您重新组合代码的“处理问题”部分

感谢您的链接,在阅读第二篇文章后,我意识到这可能不是一夜之间就能学会的,它似乎有点复杂,比如何时使用以及如何准确使用,但这是一个良好的开端,我了解他们正在做什么,感谢您,是的,这不是您将学会的东西(并且“明智地使用”)只需一天^^但无论如何,不需要学习那么快:当你使用这些工具时,它会一步一步来:-)
//and try and catch
try{
    $thumb = PhpThumbFactory::create('/path/to/image.jpg');
}
catch (Exception $e){
    // handle error here however you'd like
}
?>