什么是PHP中的异常,什么是try-and-catch?
我对在PHP中使用对象/类非常陌生,我对异常、尝试和捕获非常好奇 在下面的示例中,我使用了所有3个。显然,异常是触发错误的某种方式,但我不明白为什么?在下面的代码中,我可以很容易地显示某种错误或没有异常部分的东西 下面是一个使用try-and-catch的示例。在我看来,这与使用if/else是一样的。我可能错了,这只是我在不知道任何事情的情况下看待它们的方式,我意识到你可以在PHP中编写任何东西而不使用这些东西,那么原因是什么,使用这些东西与传统方式相比有什么好处吗什么是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
// 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
块)。然后,稍后,捕获在块执行期间可能抛出的异常,并适当地处理它们。这是一种更干净的错误处理方式。简而言之,例外情况是“改变正常程序执行流程的特殊情况”(引用维基百科)
您可能(至少)对以下几篇文章感兴趣:
优势之一(这是基本理念的一部分)是:
- 在
块中有“正常”代码try
- “处理问题”代码的最大部分是
块catch
- 这意味着在“正常”代码 中间的“处理问题”代码更少。
- 还允许您重新组合代码的“处理问题”部分
//and try and catch
try{
$thumb = PhpThumbFactory::create('/path/to/image.jpg');
}
catch (Exception $e){
// handle error here however you'd like
}
?>