看視頻後記下來的筆記
異常(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();
}