1. 程式人生 > >5、異常處理

5、異常處理

一、異常簡介

try:
    <語句>
except <name><語句>          #如果在try部份引發了名為'name'的異常,則執行這段程式碼
else:
    <語句>          #如果沒有異常發生,則執行這段程式碼

    如:任意輸入3個數,判斷能否組成三角形,判斷使用者輸入的資料是否大於0的數字。

      

def ispositive(num):
    try:
        float(num)
    except:
        return False
    
else: if float(num) <= 0: return False else: return True a = input("請輸入第1個數字:") while not ispositive(a): a = input("不是有效數字,請重新輸入:") b = input("請輸入第2個數字:") while not ispositive(b): b = input("不是有效數字,請重新輸入:") c = input("請輸入第3個數字:") while not ispositive(c): c
= input("不是有效數字,請重新輸入:")

二、常見的異常型別

      

 1 BaseException    所有異常的基類
 2 SystemExit       直譯器請求退出
 3 KeyboardInterrupt    使用者中斷執行(通常是輸入^C)
 4 Exception            常規錯誤的基類
 5 StopIteration        迭代器沒有更多的值
 6 GeneratorExit        生成器(generator)發生異常來通知退出
 7 StandardError    所有的內建標準異常的基類
 8 ArithmeticError    所有數值計算錯誤的基類
9 FloatingPointError 浮點計算錯誤 10 OverflowError 數值運算超出最大限制 11 ZeroDivisionError 除(或取模)零 (所有資料型別) 12 AssertionError 斷言語句失敗 13 AttributeError 物件沒有這個屬性 14 EOFError 沒有內建輸入,到達EOF 標記 15 EnvironmentError 作業系統錯誤的基類 16 IOError 輸入/輸出操作失敗 17 OSError 作業系統錯誤 18 WindowsError 系統呼叫失敗 19 ImportError 匯入模組/物件失敗 20 LookupError 無效資料查詢的基類 21 IndexError 序列中沒有此索引(index) 22 KeyError 對映中沒有這個鍵 23 MemoryError 記憶體溢位錯誤(對於Python 直譯器不是致命的) 24 NameError 未宣告/初始化物件 (沒有屬性) 25 UnboundLocalError 訪問未初始化的本地變數 26 ReferenceError 弱引用(Weak reference)試圖訪問已經垃圾回收了的物件 27 RuntimeError 一般的執行時錯誤 28 NotImplementedError 尚未實現的方法 29 SyntaxError Python 語法錯誤 30 IndentationError 縮排錯誤 31 TabError Tab 和空格混用 32 SystemError 一般的直譯器系統錯誤 33 TypeError 對型別無效的操作 34 ValueError 傳入無效的引數 35 UnicodeError Unicode 相關的錯誤 36 UnicodeDecodeError Unicode 解碼時的錯誤 37 UnicodeEncodeError Unicode 編碼時錯誤 38 UnicodeTranslateError Unicode 轉換時錯誤 39 Warning 警告的基類 40 DeprecationWarning 關於被棄用的特徵的警告 41 FutureWarning 關於構造將來語義會有改變的警告 42 OverflowWarning 舊的關於自動提升為長整型(long)的警告 43 PendingDeprecationWarning 關於特性將會被廢棄的警告 44 RuntimeWarning 可疑的執行時行為(runtime behavior)的警告 45 SyntaxWarning 可疑的語法的警告 46 UserWarning 使用者程式碼生成的警告