2010-01-07 78 views
5

我是很新,在PHP中使用对象/类和我很好奇例外TRY,并CATCH什么是PHP中的异常,什么是try和catch?

在下面的例子中我在使用中显示的所有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!'); 
} 

try和catch

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

回答

5

为了让事情变得很短,一个例外是“特别条件,即改变程序执行的正常流动” (引用维基百科)


您可能会感兴趣的(至少)那些情侣文章:

他们应该给你一些有趣的元素 - 特别是第二个,对于“什么是在PHP例外”


的优点之一(这是部分基本思想)是:

  • 你在try“正常”的代码阻止
  • 和的“处理问题”的代码最重要的部分是在catch
  • 这意味着更少的代码的“正常”代码
  • 中间的“处理问题”,也可以让你重组“处理问题”部分代码
+0

感谢您的链接,在阅读第二篇文章后,我意识到这是我可能不会在一夜之间学习的东西,它看起来有点复杂,何时使用以及如何使用,但这是一个好开始,我明白他们在做什么,在某种程度上,谢谢 – JasonDavis 2010-01-07 06:22:28

+0

是的,这不是你会在一天内学会的东西(并且明智地使用它)^^但是不需要快速地放弃,反正它会一步一步地来,当你使用的时候那些:-) – 2010-01-07 06:35:27

2

例外的是分离从 “正规” 的代码错误处理代码的方式。基本上,这种策略可以让你编写一段代码,而不用担心可能出错的地方(try块)。然后,稍后,您会捕获该块执行过程中可能引发的异常,并对其进行适当处理。这是处理错误的更清晰的方式。

+1

只要记住。它抛出的第一个错误会停止执行。但是啊... – 2010-01-07 05:59:06