在 PHP 7+ 中,對 try-finally 的改進主要包括以下幾點:
- 引入了 Throwable 接口替代了原先的 Exception 接口,Throwable 接口是 Exception 和 Error 的基類,這使得 try-catch 塊能夠處理任何異常和錯誤,而不僅僅是異常。
- 引入了 finally 塊可以用來在 try-catch 塊執行完畢后無論是否拋出異常都會執行的代碼,這樣可以確保資源的正確釋放和清理,避免資源泄漏。
- 引入了多個異常捕獲,可以在一個 catch 塊中捕獲多個異常類型,簡化了代碼的編寫。
- 可以在 finally 塊中使用 return 語句,不會阻止 try 或 catch 塊中的 return 語句執行,這樣可以確保在 finally 塊中的代碼執行完畢后再返回結果。
- 引入了 Throwable::getTrace() 方法和 Throwable::getTraceAsString() 方法,可以獲取異常的堆棧跟蹤信息,方便調試和定位問題。