php 高階(錯誤處理和異常處理)

2021-07-04 06:34:58 字數 1976 閱讀 7784

1.回顧:上篇學習了php中關於cookie和session的操作

2.這篇學習php高階中的錯誤處理和exception異常處理

3.錯誤處理

3.1 了解

預設錯誤處理很簡單,將訊息傳送到瀏覽器,告知檔名,行號,以及描述錯誤的訊息 。錯誤處理是很重要的,如果**缺少錯誤檢測編碼,那麼看著很不專業,帶來安全風險。三種錯誤處理方

法:3.2 簡單的die()函式操作

簡單的die()語句

if(!file_exists("web.txt"))else

3.3 自定義錯誤處理函式(錯誤處理器)

(1)建立乙個自定義錯誤處理器非常簡單,即建立乙個專用函式,當發生錯誤是呼叫該函式

(2)該函式必須有能力處理至少兩個引數(error level和 error message),

(3)也可以包含下面引數:fill , line-number , error context

(4)error_function(error_level,error_message,error_file,error_line,error_context);

#建立乙個處理錯誤函式

function yanerror($errno,$errstr)

#php預設的錯誤處理程式是內建錯誤程式,我們我我們的錯誤函式,在執行期間設定為預設錯誤處理程式

set_error_handler("yanerror");

#測試echo($t);

3.4 觸發錯誤

#trigger_error();函式來執行

$test=3;

if($test>1)

3.5 錯誤記錄

#error_log()函式可以向指定的檔案或遠端目的傳送錯誤記錄

#可以放在錯誤處理函式裡執行

error_log("error: [$errno] $errstr",1,"[email protected]","from: [email protected]");

4.異常 exception

4.1 了解

用於在指定的錯誤發生時改變指令碼的正常流程。

4.2 異常的正常使用

function checknum($num)

return true;

}checknum(10);

4.3 try catch throw

#throw 必須對應至少乙個 catch

#catch 捕獲乙個包含 異常的資訊的物件

trycatch(exception $e)

4.4 自定義異常類

#建立自定義異常處理類 ,通過繼承 exception類的所有屬性

class customexception extends exception

}

4.5 多個異常

使用if...else  ,switch 語句控制

4.6 重新丟擲異常

在catch 中使用 throw語句

4.7 設定頂層異常處理器

# set_exception_handler()函式

function myexception($e)

set_exception_handler('myexception');

#當使用throw的時候,不需要catch**塊就行,丟擲是會觸發 上面的自定義處理函式

throw new exception("我不需要catch");

簡而言之:如果丟擲了異常,就必須捕獲它。

PHP 錯誤處理及異常處理

1.設定自己的錯誤處理函式 trigger error 捕捉使用者級別的錯誤。set error handler 使用者自定義錯誤處理函式。2.捕獲異常 捕獲異常當然用trycatch 當然 中使用的異常處理類是thinkphp中,throw exception 為thinkphp的丟擲異常函式 另...

php錯誤處理和php異常處理機制

php錯誤處理 當我們開發程式時,有時候程式出現了問題,我們就可以用以下幾種辦法找出錯誤。開發階段 開發時輸出所有的錯誤報告,有利於我們進行程式除錯 執行階段 我們不要讓程式輸出任何一種錯誤報告 不能讓使用者看到 包括懂技術,不懂技術的人 將錯誤報告寫入日誌中 一 指定錯誤報告 error repo...

C 錯誤處理和異常處理

c 語言本身或標準程式庫所丟擲的所有異常,都派生自基類exception。這是其他數個標準異常類別的基類,它們共同構成乙個類體系 圖一 標準異常階層體系 這些標準異常類別分為三組 1 語言本身所支援的異常 此類異常用以支撐某些語言特性。主要包括 bad alloc new操作失敗會丟擲。bad ca...