溫馨提示×

溫馨提示×

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

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

【筆記】異常處理

發(fā)布時間:2020-05-23 08:01:07 來源:網(wǎng)絡 閱讀:354 作者:SelbyLei 欄目:web開發(fā)
異常處理
拋出和捕獲異常
try          功能檢查異常
catch      捕獲異常
throw     拋出異常
try{
    ...
    throw new Exception($errmsg,$errcode)
}catch(Exception $e){
    ...
}

try之后至少要有一個catch,成對出現(xiàn)

基本異常類
Exception
1.接受兩個參數(shù)          錯誤信息和錯誤代碼
2.內(nèi)置方法
    getMessage          返回傳遞給構造函數(shù)的方法
    getCode               返回傳遞給構造函數(shù)的代碼
    getFile               返回發(fā)生異常的代碼文件路徑
    getLine               返回代碼行號
    __tostring          輸出所有異常信息

3.擴展基本異常類     繼承Exception
    <?php
         try {
              $num = 0;
              if($num == 0){
                   $errmsg = "除數(shù)不能為0";
                   throw new newException($num);
              }else {
                   echo 500/$num;
              }

         } catch (newException $e) {
              $e->errMessage();
         }

         class  newException extends Exception{
              function errMessage(){
                   echo "錯誤信息:"."除數(shù)".$this->getMessage()."不能為零<br>";
                   echo "錯誤文件:".$this->getFile()."<br>";
                   echo "錯誤行:".$this->getLine();
              }
         }
    ?>
4.捕獲多個異常
    使用if和else或者swith
    捕獲異常是往往仍然需要捕獲Exception類,來處理捕獲的異常
    從上往下的順序,如果先捕獲Exception類導致不能被正確的代碼執(zhí)行,特定的異常寫在前面,一般異常的catch寫在后面
    示例:    
         class customException extends Exception{
              public function errMessage(){
                   $errMsg = "錯誤信息:".$this->getMessage()."<br>";
                   $errMsg.="錯誤文件路徑:".$this->getFile()."<br>";
                   $errMsg.="錯誤代碼行號:".$this->getLine();
                   return $errMsg;
              }
         }
         $email = "sunyan@example.....com";
         try {
              if(filter_var($email,FILTER_VALIDATE_EMAIL)==FALSE){
                   throw new customException("<b>".$email."</b>錯誤的郵箱地址");
              }
              if(strpos($email,"example")!=FALSE){
                   throw new customException("<b>".$email."</b>是一個example電子郵件地址");
              }
         }catch (customException $e){
              echo $e->errMessage();
         }
         catch (Exception $e) {
              echo $e->getMessage();
         }



向AI問一下細節(jié)

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

AI