PHP基礎: 異常處理


看視頻後記下來的筆記

異常(Exception)用於在指定的錯誤發生時改變腳本的正常流程。

1. 系統自帶的異常處理

<?php
try{
    $num = 1;
    if($num == 1){
        echo "success";
    }else{
        throw new Exception("變量num不等於1", 1234);  //拋出異常對象
    }
}catch(Exception $e){  //類型約束, 只能傳遞Exception類實例化的對象
    echo "錯誤文件爲: ";
    echo $e -> getFile();  //出現錯誤的文件
    echo ", 發生錯誤的行爲: "
    echo $e -> getLine();  //輸出錯誤行
    echo ", 錯誤代碼爲: ";
    echo $e -> getCode();  //錯誤碼1234, 默認是0
    echo ", 錯誤信息爲: ";
    echo $e -> getMessage();  //錯誤信息"變量不等於1"
    //echo $e;  //__toString
}

2. 自定義異常處理

<?php
//自定義異常類時要繼承系統的異常處理類
class myException extends Exception{

    //可以自己定義異常處理流程, 比如拼接系統異常類的方法
    public function getAllInfo(){
        return "";
    }
}

try{

//捕捉時注意類型約束爲自己定義的異常處理類名
}catch(myException $e){
    echo $e -> getAllInfo();
}

3. 捕捉多個異常

try{
    //捕捉多個異常處理要拋出多個異常對象, 不能是由一個異常處理類實例化的對象
    if($_GET['num'] == 1){
        throw new myException("這是自定義的異常處理");
    }elseif(){
        throw new Exception("這是系統的異常處理");
    }
//在捕捉時系統的異常處理分支要放到最後
//注意類型約束
}catch(myException $e){
    echo $e -> getAllInfo();
}catch(Exception $e){
    echo $e -> getMessage();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章