[轉載](Python)異常處理try...except、raise
一、try...except
有時候我們寫程式的時候,會出現一些錯誤或異常,導致程式終止。例如,做除法時,除數為0,會引起一個ZeroDivisionError
例子:
1 2 3 4 |
|
執行結果:
Traceback (most recent call last):
File "C:/Users/lirong/PycharmProjects/untitled/openfile.py", line 3, in <module>
c=a/b
ZeroDivisionError: integer division or modulo by zero
我們發現程式因為ZeroDivisionError而中斷了,語句print "done" 沒有執行。為了處理異常,我們使用try...except,更改程式碼:
1 2 3 4 5 6 7 8 |
|
執行結果:
integer division or modulo by zero
done
這樣程式就不會因為異常而中斷,從而print "done"語句正常執行。
我們把可能發生錯誤的語句放在try模組裡,用except來處理異常。except可以處理一個專門的異常,也可以處理一組圓括號中的異常,如果except後沒有指定異常,則預設處理所有的異常。每一個try,都必須至少有一個except
處理一組異常可以這樣寫(其中e代表異常的例項):
1 2 3 4 |
|
try ....except...else 語句,當沒有異常發生時,else中的語句將會被執行。
例子:
1 2 3 4 5 6 7 8 9 10 |
|
執行結果:
0
no error
done
二、raise 引發一個異常
例子:如果輸入的資料不是整數,則引發一個ValueError
1 2 3 4 5 |
|
假設輸入1.2,執行結果為:
please input a int data :1.2
Traceback (most recent call last):
File "C:/Users/lirong/PycharmProjects/untitled/openfile.py", line 3, in <module>
raise ValueError
ValueError
如果輸入1,執行結果為:
please input a int data :1
1
三、try ...finally
無論異常是否發生,在程式結束前,finally中的語句都會被執行。
1 2 3 4 5 6 |
|
執行結果:
Traceback (most recent call last):
always excute
File "C:/Users/lirong/PycharmProjects/untitled/openfile.py", line 4, in <module>
print a/b
ZeroDivisionError: integer division or modulo by zero
雖然有異常發生,但在程式終止前,finally中的語句也能正常執行。。
finally語句也可以和except語句一起使用。
1 2 3 4 5 6 7 8 |
|
執行結果:
error
always excute
四、自定義一個異常類
自定義一個MyException類,繼承Exception。
1 2 3 4 |
|
如果輸入的數字小於10,就引發一個MyException異常:
1 2 3 4 5 6 |
|
執行結果:
please input a num:1
my excepition is raised
五、python所有的標準異常類:
異常名稱 | 描述 |
---|---|
BaseException | 所有異常的基類 |
SystemExit | 直譯器請求退出 |
KeyboardInterrupt | 使用者中斷執行(通常是輸入^C) |
Exception | 常規錯誤的基類 |
StopIteration | 迭代器沒有更多的值 |
GeneratorExit | 生成器(generator)發生異常來通知退出 |
SystemExit | Python 直譯器請求退出 |
StandardError | 所有的內建標準異常的基類 |
ArithmeticError | 所有數值計算錯誤的基類 |
FloatingPointError | 浮點計算錯誤 |
OverflowError | 數值運算超出最大限制 |
ZeroDivisionError | 除(或取模)零 (所有資料型別) |
AssertionError | 斷言語句失敗 |
AttributeError | 物件沒有這個屬性 |
EOFError | 沒有內建輸入,到達EOF 標記 |
EnvironmentError | 作業系統錯誤的基類 |
IOError | 輸入/輸出操作失敗 |
OSError | 作業系統錯誤 |
WindowsError | 系統呼叫失敗 |
ImportError | 匯入模組/物件失敗 |
KeyboardInterrupt | 使用者中斷執行(通常是輸入^C) |
LookupError | 無效資料查詢的基類 |
IndexError | 序列中沒有沒有此索引(index) |
KeyError | 對映中沒有這個鍵 |
MemoryError | 記憶體溢位錯誤(對於Python 直譯器不是致命的) |
NameError | 未宣告/初始化物件 (沒有屬性) |
UnboundLocalError | 訪問未初始化的本地變數 |
ReferenceError | 弱引用(Weak reference)試圖訪問已經垃圾回收了的物件 |
RuntimeError | 一般的執行時錯誤 |
NotImplementedError | 尚未實現的方法 |
SyntaxError | Python 語法錯誤 |
IndentationError | 縮排錯誤 |
TabError | Tab 和空格混用 |
SystemError | 一般的直譯器系統錯誤 |
TypeError | 對型別無效的操作 |
ValueError | 傳入無效的引數 |
UnicodeError | Unicode 相關的錯誤 |
UnicodeDecodeError | Unicode 解碼時的錯誤 |
UnicodeEncodeError | Unicode 編碼時錯誤 |
UnicodeTranslateError | Unicode 轉換時錯誤 |
Warning | 警告的基類 |
DeprecationWarning | 關於被棄用的特徵的警告 |
FutureWarning | 關於構造將來語義會有改變的警告 |
OverflowWarning | 舊的關於自動提升為長整型(long)的警告 |
PendingDeprecationWarning | 關於特性將會被廢棄的警告 |
RuntimeWarning | 可疑的執行時行為(runtime behavior)的警告 |
SyntaxWarning | 可疑的語法的警告 |
UserWarning | 使用者程式碼生成的警告 |
相關推薦
[轉載](Python)異常處理try...except、raise
一、try...except 有時候我們寫程式的時候,會出現一些錯誤或異常,導致程式終止。例如,做除法時,除數為0,會引起一個ZeroDivisionError 例子: 1 2 3 4 a=10
(Python)異常處理try...except、raise
一、try...except有時候我們寫程式的時候,會出現一些錯誤或異常,導致程式終止。例如,做除法時,除數為0,會引起一個ZeroDivisionError例子:1234a=10b=0c=a/bprint "done"執行結果:Traceback (most recent
Python異常處理try...except、raise
一、try...except有時候我們寫程式的時候,會出現一些錯誤或異常,導致程式終止。例如,做除法時,除數為0,會引起一個ZeroDivisionError例子:1234a=10b=0c=a/bprint "done"執行結果:Traceback (most recent
python異常處理--try except else raise finally
-- 用戶 exceptio .... 異常處理 auth AS range 分享圖片 寫程序時遇到異常情況,程序可能無法正常運行。此時就需要引入異常處理 1.try ...except try 後面寫正常運行的程序代碼,except即為異常情況 1 a=3 2 b=
Python異常處理try...except...finally raise assert
異常處理: try ...except try程式碼塊放置容易發生異常的語句:except程式碼塊放置處理異常的語句 try ...except...finally finally程式碼快是任何時候
Java基礎(一)異常處理關鍵字:try catch finally throw throws
cut main 5.1 模型 指針 str control 情況 實例 嗨咯,大家晚上好,我的博客首篇開始了 ,我們一起加油吧! 都說java 語言是非常健壯性 如:垃圾回收機制、內存模型、異常處理,強類型轉換、跨平臺,等等,使得Java語言的受到青睞。今天我們先來聊
python學習筆記-day8-2-【python 異常處理 try except】
finall 沒有 class cond col pytho span try 學習 python的異常處理,與其它語言的異常一樣,當錯誤發生的時候,能捕獲到發生的錯誤,不會導致程序crash。 一、try except 1、 try except Exception,
Python入門(一) 異常處理
必須 IV PE runt .... fin 是否 位置 邏輯 異常處理 捕捉異常可以使用try/except語句。 try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息並處理。 以下是語法: 1 try: 2 <語句>
Python異常處理try...except的簡單使用
1. try…except 有時候我們寫程式的時候,會出現一些錯誤或異常,導致程式終止。使用try…except,這樣程式就不會因為異常而中斷。把可能發生錯誤的語句放在try模組裡,用except來處理異常。except可以處理一個專門的異常,也可以處理一組圓括號中的異常,如果exc
Python異常處理try except
原文地址:https://www.cnblogs.com/init-life/p/9105546.html 異常處理try except 在Python中,異常處理,主要是try except語句,通常語法格式如下. try: 程式碼塊1 except Exce
異常(2)----異常處理(try...cache...finally、throws)
二、try...catch異常處理 當執行程式時,可能丟擲異常。可以對可能出現異常的程式捕獲異常並處理。【例1】 當呼叫帶有throws的方法(指可能丟擲非RuntimeExce
零基礎入門學習Python(33)--異常處理:你不可能總是對的(2)
前言 接下來我們介紹一種方法捕捉語句塊中可能出現的錯誤 知識點 異常處理 捕捉異常可以使用try/except語句。 try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常資訊並處理。 如果你不想在異常發生時結束你的程式,只需在try
Python筆記(3)異常處理
Exception(異常) 當遇到異常的條件時,Python使用exception物件來描述。當遭遇一個錯誤的時候,程式就丟擲一個異常,如果沒有來處理此類異常的策略的話,程式將會以一個traceback的方式終止,程式碼如下: >>> 1/0 Tra
(筆記)異常處理:try/catch的應用例子(finally待整理)
題目:判斷傳入的字串是否為ip地址 /** * 判斷傳入的字串是否為ip地址 * @param ip * @return * @throws Exception */ public static boolean isIP(String ip)
Python爬蟲包 BeautifulSoup 學習(二) 異常處理
面對網路不穩定,頁面更新等問題,很可能出現程式異常的問題,所以我們要對程式進行一些異常處理。大家可能覺得處理異常是一個比較麻煩的活,但在面對複雜網頁和任務的時候,無疑成為一個很好的程式碼習慣。 網頁‘404’、‘500’等問題 try:
SpringMVC系列(十三)異常處理
supported per ring servlet 標記 ext test 頁面 ansi 一、簡介 ? Spring MVC 通過 HandlerExceptionResolver 處理程序的異常,包括 Handler 映射、數據綁定以及目標方法執行時發生的異常。? S
異常處理 try except
point 導致 輸入 映射 訪問 oar tro 初始化 解釋器 異常處理 try except 一、try...except 有時候我們寫程序的時候,會出現一些錯誤或異常,導致程序終止。例如,做除法時,除數為0,會引起一個ZeroDivisionError 例
c++基礎(十三)——異常處理
err fun runt splay cat c++基礎 自動 所有 參數 異常處理的思想與程序實現 異常處理的基本思想 異常處理的語法 異常接口聲明 一個函數顯式聲明可能拋出的異常,有利於函數的調用者為異常處理做好準備 可以在函數的聲明中列出這個函數可能拋擲的所有異
011 python語法_錯誤處理 try except finally raise
''' 時間:2018/11/03 目錄: 一: 正常執行 1 正常 2 else 二: 發生錯誤 1 異常 2 異常 三: BaseException 四: 多層錯誤 - 多層
JAVA進階(01)異常處理
一、概述(Exception) 二、異常分類 1、繼承結構 說明: ClassNotFoundException 不屬於執行時異常 2、error (1)Error與Exception的區別