異常處理的實際例子
使用者輸入
想象一下,你希望使用者通過 input
輸入數字。你希望確保輸入是一個數字。你可以使用 try
/ except
:
Python 3.x >= 3.0
while True:
try:
nb = int(input('Enter a number: '))
break
except ValueError:
print('This is not a number, try again.')
注意:Python 2.x 會使用 raw_input
代替; 函式 input
存在於 Python 2.x 中,但具有不同的語義。在上面的例子中,input
也會接受諸如 2 + 2
之類的表示式,它們會計算出一個數字。
如果輸入無法轉換為整數,則會引發 ValueError
。你可以用 except
來捕捉它。如果沒有異常,break
會跳出迴圈。迴圈之後,nb
包含一個整數。
字典
想象一下,你正在迭代一個連續的整數列表,比如 range(n)
,你有一個字典列表 d
,其中包含有關遇到某些特定整數時要做的事情的資訊,比如跳過下面的 d[i]
。
d = [{7: 3}, {25: 9}, {38: 5}]
for i in range(len(d)):
do_stuff(i)
try:
dic = d[i]
i += dic[i]
except KeyError:
i += 1
當你嘗試從字典中獲取不存在的鍵的值時,將引發 KeyError
。