Python程式設計入門 第9章 異常處理 學習筆記

2021-07-24 13:29:35 字數 2194 閱讀 5294

一、異常

異常是一種特殊的錯誤物件,可以捕獲並檢查它們,以決定如何處理錯誤。

出現異常後,如果不捕獲或以其他方式處理,python將立即停止執行程式,並顯示棧跟蹤(異常發生前呼叫的函式清單)。

(一)引發異常

python內建函式和庫函式通常在出現意外情況時引發異常。

如:除以零將丟擲異常

>>> 1/0

traceback (most recent call last):

file "", line

1, in

1/0zerodivisionerror: division by

zero

二、捕獲異常

當異常發生時,有兩種選擇處理:

1、忽略異常,讓程式崩潰並顯示棧跟蹤。

2、捕獲異常,並列印友好的錯誤訊息乃至試圖修復問題。

#從使用者那裡獲取乙個整數

#反覆提示使用者,直到其輸入有效的整數

defget_age

():while

true:

try:

n=int(input("how old are you?"))

return n

except valueerror:

print("please enter an integer value.")

get_age()

***************==== restart:f

:/pythonlab/

20161112/exc1.py ***************====

how old are you?1.5

please enter an integer value.

how old are you?19

get_age()函式中while迴圈是乙個try/except塊,其中可能引發異常的**位於try語句塊中,如果try語句塊內**出現異常,就將跳過try塊中後續所有未執行的語句,跳轉到except語句塊,該塊中為出現異常後的處理語句。如果try中沒有出現異常,將跳過except塊。

1、 try/except塊

try/except塊工作原理有點像if語句,但if語句根據布林表示式判斷,而try/except語句是根據是否出現異常判斷。

2、捕獲多種異常

def

convert_to_int1

(s,base):

try:

return int(s,base)

exception(valueerror,typeerror):

return

'error'

如果需要分別處理,也可以如下例:

def

convert_to_int1

(s,base):

try:

return int(s,base)

exception valueerror:

return

'value error'

exception typeerror:

return

'type error'

如果在except子句中沒有指定異常,那麼它將捕獲try子句引發的所有異常:

def

convert_to_int2

(s,base):

try:

return int(s,base)

exception:

return

'error'

三、清理操作

在try/except塊中,可包含執行清理操作的finally**塊,finally塊無論是否引發異常都會被執行。

def

invert

(x):

try:

return

1/x except zerodivisionerror:

return

'error'

finally:

print('invert(%s) done' % x)

print(invert(0))

python入門 第8章 切片

1 對list進行切片 小結如下 切面最多可以有三個引數,引數之間使用 來分開,如果第乙個引數不寫,表示從第乙個元素開始,如果第二個引數不寫,表示到最後乙個元素 如果第乙個引數和第二個引數都寫了,那麼取值的時候從索引為第乙個引數開始,到第二個引數索引之間取值,不包含第二個索引對應的值 如果第三個引數...

Python入門 第8章 函式

此系列文章的創作初衷是作為讀書過程中的筆記,而非教程類文章。def greet print hello def greetuser name print hello,name.title def greet 顯示簡單的問候語 print hello 乙個良好的 編寫習慣是,在每個函式頭後都用文件字串...

第00章 Python程式設計入門(第3版)目錄

python是一種解釋型 物件導向 動態資料型別的高階程式語言,自20世紀90年代初誕生至今,逐漸被廣泛應用於處理系統管理任務和web程式設計。本書用通俗易懂的語言結合常見任務 螢幕圖和詳細的解釋,循序漸進地介紹了python的基礎知識,助你輕鬆 迅速地學習python。書中沒有深奧的理論或者高階應...