2012-05-28 38 views

回答

2

它可以讓你的錯誤之間differenciate。假設您有一個代碼針對多個錯誤引發相同的異常,您可以在對象聲明中使用可選的'code'參數來區分它們之間的差異。

在該頁面的例子中,他們調用一個新的Exception,代碼爲30,所以當你檢查輸出的對象時,它返回'30'。

如:

try { 
    if ($something) { 
     throw new Exception("Generic Error",1); 
    } 
    else { 
     throw new Exception("Generic Error #2",2); 
    } 
} 
catch (Exception $e) { 
    echo "Error ID ".$e->getCode()." was thrown."; 
} 
+0

嗯,這似乎是我們可以使用任意數量。是否有推薦的標準/一組數字有點像HTTP狀態代碼? – IMB

+0

不是我所知道的。它只是Exception對象的一個​​組件,完全是爲了自定義的使用。當然,我相信一些框架可能會有自己的錯誤代碼規範,但完全取決於作者。 – Death

+0

一個常見的用途是轉發來自外部源的錯誤代碼,例如MySQL相關的類可能會拋出異常,其中包含來自底層MySQL庫的相應代碼。 – salathe