2010-01-07 80 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