91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何進行錯誤和異常處理

發布時間:2021-09-06 13:41:58 來源:億速云 閱讀:155 作者:小新 欄目:編程語言

小編給大家分享一下php如何進行錯誤和異常處理,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

在php中,可以利用異常處理類“Exception”中內置的各種成員函數來獲取并返回異常數據,例如getMessage()函數就可以返回異常的消息內容;也可以通過“try catch”語句和“throw”關鍵字來捕獲程序中的異常。

本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦

PHP 中的異常處理類

PHP 中提供了內置的異常處理類——Exception,該類中常用的成員函數如下所示:

  • getMessage():返回異常的消息內容;

  • getCode():以數字形式返回異常代碼;

  • getFile():返回發生異常的文件名;

  • getLine():返回發生錯誤的代碼行號;

  • getTrace():返回 backtrace() 數組;

  • getTraceAsString():返回已格式化成字符串的、由函數 getTrace() 函數所產生的信息;

  • __toString():產生異常的字符串信息,它可以重載。注意,該函數最前部是兩個下劃線。

下面代碼是 Exception 類的完整代碼,從這個類的定義可以看出哪些屬性和方法(成員函數)在用戶派生的子類中是可以訪問和繼承的。

Exception {
    /* 屬性 */
    protected string $message ;
    protected int $code ;
    protected string $file ;
    protected int $line ;
    /* 方法 */
    public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
    final public getMessage ( void ) : string
    final public getPrevious ( void ) : Throwable
    final public getCode ( void ) : int
    final public getFile ( void ) : string
    final public getLine ( void ) : int
    final public getTrace ( void ) : array
    final public getTraceAsString ( void ) : string
    public __toString ( void ) : string
    final private __clone ( void ) : void
}

捕獲程序中的異常

在 PHP 中想要捕獲程序中的異常,需要使用 try catch 語句和 throw 關鍵字來實現。try catch 語句和流程控制語句類似,所以可以通過 try catch 語句來實現一種另類的條件選擇結構,而 throw 關鍵字則可以拋出一個異常。try catch 語句的語法格式如下:

try{
    // 可能出現異常或錯誤的代碼,比如文件操作、數據庫操作等
}catch(Exception $e){    // $e 為一個異常類的對象
    // 輸出錯誤信息
}

需要進行異常處理的代碼都必須放入 try 代碼塊內,以便捕獲可能存在的異常。每一個 try 至少要有一個與之對應的 catch。使用多個 catch 可以捕獲不同的類所產生的異常。

當 try 代碼塊不再拋出異常或者找不到 catch 能匹配所拋出的異常時,PHP 代碼就會在跳轉到最后一個 catch 的后面繼續執行。

在 PHP 代碼中所產生的異常可以被 throw 語句拋出并被 catch 語句捕獲。當然,PHP 允許在 catch 代碼塊內再次拋出(throw)異常。

當一個異常被拋出時,其后的代碼不會再繼續執行,而 PHP 就會嘗試繼續查找第一個能與之匹配的 catch。如果一個異常沒有被捕獲,而且又沒用使用 set_exception_handler() 作相應的處理的話,將會產生一個嚴重的錯誤,并且輸出 UncaughtException...(未捕獲異常)的提示信息。

【示例】使用 try catch 和 throw 捕獲程序中的異常。

<?php
    try{
        $err = '拋出異常信息,并跳出 try 語句塊';
        if(is_dir('./test')){
            echo '這里是一些可能會發生異常的代碼';
        }else{
            throw new Exception($err, 12345);   // 拋出異常
        }
        echo '上面拋出異常的話,這行代碼將不會執行,轉而執行 catch 中的代碼。<br>';
    }catch(Exception $e){
        echo '捕獲異常:'.$e->getMessage().'<br>錯誤代碼:'.$e->getCode().'<br>';
    }
    echo '繼續執行 try catch 語句之外的代碼';
?>

運行結果如下:

捕獲異常:拋出異常信息,并跳出 try 語句塊
錯誤代碼:12345
繼續執行 try catch 語句之外的代碼

示例代碼中,在 try 語句塊中試著判斷當前目錄下是否存在名為 test 的目錄,如果不存在這個目錄,那么就會執行第 7 行的代碼,通過關鍵字 throw 拋出異常。這個異常是一個 Exception 類的對象,通過 new 關鍵字生成,并且用錯誤信息 $err 和錯誤代碼 12345 初始化該對象,以便后面 catch 該異常時(代碼第 11 行),可以獲取這些信息。

一旦拋出異常,那么 try 語句塊中剩下的代碼就不再繼續執行,程序流程轉至相應的 catch 語句塊執行,最終通過 Exception 對象調用其成員函數輸出錯誤信息和代碼。

看完了這篇文章,相信你對“php如何進行錯誤和異常處理”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

临汾市| 玉溪市| 江华| 枣庄市| 高邑县| 溧阳市| 友谊县| 常山县| 颍上县| 武清区| 岐山县| 高安市| 泰兴市| 永宁县| 烟台市| 五寨县| 甘谷县| 法库县| 襄城县| 安宁市| 新闻| 喀喇沁旗| 苗栗市| 右玉县| 怀远县| 潜山县| 友谊县| 铁岭县| 乌鲁木齐县| 桃园市| 东丰县| 若羌县| 新竹市| 新龙县| 枞阳县| 西藏| 信阳市| 特克斯县| 天镇县| 出国| 醴陵市|