當前位置:才華齋>計算機>php語言>

PHP7錯誤處理機制詳解介紹

php語言 閱讀(1.73W)

我們來看一篇關於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錯誤的級別調整了。