php 異常處理

來源:互聯網
上載者:User
異常處理的基本思想是代碼在try代碼被調用執行。如果try碼塊出現錯誤,我們可以執行一個拋出異常的處理。某些程式設計語言,如java,,在特定情況下將自動拋出異常。在php中,異常必須手動拋出。可以使用如下方式拋出一個異常:

Throw new Exception(‘message’,code);

Throw 關鍵字將觸發異常處理機制,它是一個語言結構,而不是一個函數,但是必須給它傳遞一個值。它要求一個接受對象。在最簡單的情況下,可以執行個體化一個內建的Exception類。

最後,在try代碼之後,必須至少給出一個catch代碼塊。可以將多個catch代碼塊與一個try代碼塊進行關聯。如果每個catch代碼塊可以捕獲一個不同類型的異常,可以使用多個catch代碼塊是有意義的。例如,如果想捕獲Exception類的異常,代碼如下

Catch(Exception $e)

{

//handing exception

}

Catch代碼捕獲的對象就是導致異常並傳遞給throw語句的對象(被throw 語句拋出)。使用Exception 類的執行個體,是不錯的選擇。

Exception類提供了如下的內建方法:

Getcode()?返回傳遞給建構函式的代碼。

GetMessage()?返回傳遞給建構函式的訊息。

getFile()?返回產生異常代碼的檔案的路徑

getLine()?返回產生異常的代碼所在的行。

以下是我使用者註冊功能的部分代碼

查看代碼

 1 try{ 2     //check forms filled in 3     if(!filled_out($_POST)){ 4         throw new Exception('你還沒有填寫表單,請回去填寫'); 5     } 6     //check email address not valid 7     if(!check_email($email)){ 8        throw new Exception('郵件的格式不正確'); 9     }10     //檢查密度的長度是否大於611     if(strlen($passwd<6)){12         throw new Exception('密度的長度應該大於6');13     }14     //檢查兩次密碼是否相等15     if($passwd!=$passwd1){16         throw new Exception('兩次密碼不一樣,請重新輸入');17     }18     //檢查使用者名稱的長度是否正確19     if(strlen($username)>16){20         throw new Exception('使用者名稱的長度不符,請重新輸入');21     }22   23 } catch(Exception $e){24     echo $e->getMessage(); //輸出異常資訊。25 }
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.