2017-08-04 46 views
0
try { 

} catch (Exception $e) { 

} 

我以爲PHP有​​類型推斷。爲什麼需要聲明變量的類型 - $ e--?

+1

因爲可以有多個異常類型,並且您可能希望根據異常的實例執行不同的事情,因此您可以堆疊「catch」關鍵字。 –

+0

[捕獲中的$ e是什麼($ e),而PHP中的錯誤或異常處理?](https://www.quora.com/What-is-e-in-catch-e-while-error-or-異常處理在PHP中) –

回答

0

該代碼可以拋出不同類別的異常。你可以利用它來爲你的錯誤處理添加正確的代碼。

A try塊可以跟着任意數量的catch塊。

例子:

try 
{ 
} 
catch(\PDOException $e) 
{ 
    // Something bad happened while dealing with database 
} 
catch(\LengthException $e) 
{ 
    // Length exception occurred 
} 
catch(\Exception $e) 
{ 
    // The \Exception is the parent class for all exceptions, this handles anything not caught in above example 
} 

使用上面的示例,您可以根據爲什麼他們發生採取處理錯誤適當的措施。這意味着你可以拋出你定義的異常。這是最好的,如果你不過分,並用異常換掉整個錯誤處理。例如,當代碼流發生異常時會發生異常 - 與MySQL的連接打破了中間事務。

+0

太棒了,謝謝。這種強制行爲也可以用於函數嗎? –

+0

你是什麼意思?如果一個函數拋出異常,那麼是的。任何事情都可以拋出異常或任何類型的異常。 –

+0

例如我可以聲明一個函數,如---函數acceptException(Exception $ e){} –