1. 程式人生 > >(Python)異常處理try...except、raise

(Python)異常處理try...except、raise

一、try...except

有時候我們寫程式的時候,會出現一些錯誤或異常,導致程式終止。例如,做除法時,除數為0,會引起一個ZeroDivisionError

例子:

1234a=10b=0c=a/bprint "done"

執行結果:

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,更改程式碼:

12345678a=10b=0try:c=a/bprint cexcept ZeroDivisionError,e:print e.messageprint "done"

執行結果:

integer division or modulo by zero
done

這樣程式就不會因為異常而中斷,從而print "done"語句正常執行。

我們把可能發生錯誤的語句放在try模組裡,用except來處理異常。except可以處理一個專門的異常,也可以處理一組圓括號中的異常,如果except後沒有指定異常,則預設處理所有的異常。每一個try,都必須至少有一個except

處理一組異常可以這樣寫(其中e代表異常的例項):

1234trypassexcept (IOError ,ZeroDivisionError),e:print e

try ....except...else 語句,當沒有異常發生時,else中的語句將會被執行。

例子:

12345678910a=10b=0try:= b/ aprint cexcept (IOError ,ZeroDivisionError),x:print xelse:print "no error"print "done"

執行結果:

0
no error
done

二、raise 引發一個異常

例子:如果輸入的資料不是整數,則引發一個ValueError

12345inputValue=input
("please input a int data :")if type(inputValue)!=type(1):raise ValueErrorelse:print inputValue

假設輸入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中的語句都會被執行。

123456a=10b=0try:print a/bfinally:print "always excute"

執行結果:

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語句一起使用。

12345678a=10b=0try:print a/bexcept:print "error"finally:print "always excute"

執行結果:

error

always excute

四、自定義一個異常類

自定義一個MyException類,繼承Exception。

1234

相關推薦

[轉載]Python異常處理try...exceptraise

一、try...except 有時候我們寫程式的時候,會出現一些錯誤或異常,導致程式終止。例如,做除法時,除數為0,會引起一個ZeroDivisionError 例子: 1 2 3 4 a=10

Python異常處理try...exceptraise

一、try...except有時候我們寫程式的時候,會出現一些錯誤或異常,導致程式終止。例如,做除法時,除數為0,會引起一個ZeroDivisionError例子:1234a=10b=0c=a/bprint "done"執行結果:Traceback (most recent

Python異常處理try...exceptraise

一、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程式碼快是任何時候

異常2----異常處理try...cache...finallythrows

二、try...catch異常處理 當執行程式時,可能丟擲異常。可以對可能出現異常的程式捕獲異常並處理。【例1】 當呼叫帶有throws的方法(指可能丟擲非RuntimeExce

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

零基礎入門學習Python33--異常處理:你不可能總是對的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的區別