1. 程式人生 > >PHP 處理異常 和 Python 處理異常 的區別

PHP 處理異常 和 Python 處理異常 的區別

PHP 處理異常 和 Python 處理異常

一、PHP捕獲異常

1.PHP 錯誤型別

2.PHP 例子

二、Python 捕獲異常

1.Python例子


一、PHP捕獲異常

1.PHP 錯誤型別

級別常量

錯誤報告描述

E_ERROR 

致命的執行時錯誤(它會阻止指令碼的執行)

E_WARNING 

執行時警告(非致命的錯誤)

E_PARSE 

從語法中解析錯誤

E_NOTICE 

執行時注意訊息(可能是或者可能不是一個問題)

E_CORE_ERROR 

類似E_ERROR,但不包括PHP核心造成的錯誤

E_CORE_WARNING 

類似E_WARNING,但不包括PHP核心錯誤警告

E_COMPILE_ERROR 

致命的編譯時錯誤

E_COMPILE_WARNING 

致命的編譯時警告

E_USER_ERROR 

使用者導致的錯誤訊息

E_USER_WARNING 

使用者導致的警告

E_USER_NOTICE 

使用者導致的注意訊息

E_ALL 

所有的錯誤、警告和注意

E_STRICT

關於PHP版本移植的相容性和互操作性建議

屬於異常範圍:在指定的錯誤(異常)情況發生時改變指令碼的正常流程

2.PHP 例子

// 建立 關聯陣列
$_associative_array_one = array();
// 刪除 關聯陣列
unset($_associative_array_one);

// 因為 "變數引用不存在" 不會改變指令碼正常執行 屬於 警告E_NOTICE 不屬於 異常範圍
// 所以 使用 if 強行觸發異常
function _is_set($a){
    if(!isset($a)){
        throw new Exception('關聯陣列不存在');
    }
}
// try 判斷語句 是否 能 觸發異常
try {
    _is_set($_associative_array_one);
}
// catch 捕捉異常 退出
catch (Exception $e){
    echo 'Message: '.$e->getMessage();
    return;
}
// 如沒異常 繼續執行程式碼
echo "無異常";

二、Python 捕獲異常

大概功能類似,直接給例子

1.Python例子

# python 捕獲異常
try:
    判斷是否異常語句
except Exception as e:
    若捕捉異常,執行這
else:
    若無異常,執行這
finally:
    不管是否異常,都執行