1. 程式人生 > >PHP程式設計過程中程式健壯性(自己總結筆記記錄)

PHP程式設計過程中程式健壯性(自己總結筆記記錄)

在php業務開發中,因為IDE對於php的異常不會像java編輯器IDE那樣智慧自動加上異常捕獲,這時候就需要我們開發的時候手動加上異常捕獲,這樣可以儘可能的保證程式的健壯性。避免反饋到使用者端的是程式異常。下面是自己親測的示例:

SelfException.php的程式碼如下:
class SelfException extends Exception {

    public function __construct($message = "", $code = 0, Throwable $previous = null) {
        parent::__construct
($message, $code, $previous); } public function getUserException(){ return "使用者自己丟擲的異常資訊"; } }
然後建立index.php檔案:

require_once "SelfException.php";//使用者自己丟擲異常,Exception的構造方法
try{
    $url = 'http://abc.baidu1.com';
    $curl = curl_init();
    //設定抓取的url
    curl_setopt($curl, CURLOPT_URL
, $url); //設定標頭檔案的資訊作為資料流輸出 curl_setopt($curl, CURLOPT_HEADER, 1); //設定獲取的資訊以檔案流的形式返回,而不是直接輸出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 10); curl_setopt($curl, CURLOPT_TIMEOUT,1); //執行命令 $data = curl_exec($curl); $info = curl_getinfo($curl); //關閉URL請求 curl_close($curl
); if($info['http_code'] != 200) { throw new SelfException('請求出錯'.$url); } }catch (SelfException $e){ echo $e->getUserException().'<pre>'; echo "上面的請求超時不重要的時候,直接通過try繞過,保證程式健壯性"; }

執行結果:

使用者自己丟擲的異常資訊

上面的請求超時不重要的時候,直接通過try繞過,保證程式健壯性
總結:有時候如同上面的程式,在請求
http://abc.baidu1.com
連線的時候,該地址是不存在的,程式也不會報錯,大多數時候,我們可能就直接使用了$data變數值,在使用變數值即使做了變數值的驗證,給出使用者提示,這時候如果程式比較龐大,我們去定位問題的位置可能會花些時間,如果使用了這樣的異常,可以很快定位問題位置所在,也可以避免使用者看到程式異常。一般情況下用php的Exception就足夠了,如果Exception裡面的方法不能滿足需求,使用者可以自定義異常類,自定義的異常類需要繼承php的Exception,例如上面的SelfException類。