PHP7錯誤處理機制詳解介紹

來源:文萃谷 1.65W

我們來看一篇關於PHP7錯誤處理機制詳解介紹,對於php7新特性我們有介紹過不小的教程,希望文章能夠幫助到各位朋友。就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!

PHP7錯誤處理機制詳解介紹

<script>ec(2);</script>

HP7實現了一個全局的throwable接口,原來的Exception和部分Error都實現了這個接口(interface), 以接口的方式定義了異常的繼承結構。於是,PHP7中更多的Error變為可捕獲的Exception返回給開發者,如果不進行捕獲則為Error,如果捕獲就變為一個可在程序內處理的Exception。這些可被捕獲的`Error通常都是不會對程序造成致命傷害的Error,例如函數不存。

  一、現在有兩個異常類:Exception and Error.

PHP7現在有兩個異常類,Exception and Error。這兩個類都實現了一個新的接口:Throwable。在您的異常處理代碼中,類型暗示可能需要調整下。

<?php

try {

not_exists_func();

} catch (EngineException $e) {

var_dump($e->getMessage());

}

output:

string(44) "Call to undefined function not_exists_func()"

  二、一些致命錯誤和可恢復致命錯誤改為拋出Error對象。

有一些致命錯誤和可恢復致命錯誤現在改為報出Error對象。Error對象是和Exception獨立的,它們無法被常規的try/catch撲獲。編者按:需要註冊錯誤處理函數,請參考下面的RFC。

對於這些已經轉為異常的可恢復致命錯誤,已經無法通過error handler靜默的忽略掉。尤其是無法忽略類型暗示錯誤。

  三、語法錯誤會拋出一個ParseError對象

語法錯誤會拋出一個ParseError對象,該對象繼承自Error對象。之前處理eval()的時候,對於潛在可能錯誤的代碼除了檢查返回值或者error_get_last()之外,還應該捕獲ParseError對象。

  四、內部對象的構造方法如果失敗的時候總會拋出異常

內部對象的構造方法如果失敗的時候總會報出異常。之前的有一些構造方法會返回NULL或者一個無法使用的對象。

  五、一些E_STRICT錯誤的級別調整了。

熱門標籤