異常處理
- 如果沒有異常處理,當程序遇到錯誤時,將會崩潰,終止運行
- 異常處理指的是,在代碼部分,考慮到程序可能會出現的錯誤,在代碼中捕獲
出現的錯誤,並給出解決方案(補救代碼) - 語法
try:
有可能發生異常的語句
except 異常1:
補救代碼
except (異常2, 異常3):
補救代碼
else:
不發生異常才執行的語句
finally:
不管異常是否發生都要執行的語句
try:
n = int(input('數字: '))
result = 100 / n
except (ValueError, ZeroDivisionError) as e: #將錯誤信息賦值給變量
print('只接受非0數字', e) #輸出錯誤信息
except (KeyboardInterrupt, EOFError) as e:
print('bye', e)
exit(0) #終止程序運行,returncode爲0
else:
print(result)
finally:
print('Done')
觸發異常raise
def get_info(name, age):
if not 0 < age <= 120:
raise ValueError('年齡超出範圍(1-120)')
print('%s is %s years old' % (name, age))
if __name__ == '__main__':
get_info('dc', 200)
斷言異常assert
def get_info2(name, age):
assert 0 < age <= 120, '年齡超出範圍(1-120)'
print('%s is %s years old' % (name, age))
if __name__ == '__main__':
get_info2('plj', 188)