錯誤和異常:
錯誤:
nameerror 未聲明、初始化對象
indexerror 序列中沒有此索引
syntaxerror 語法錯誤
keyboardinterrupt 用戶中端執行
EOFEror 沒有內建輸入,到達EOF標記
IOErrot 輸入/輸出操作失敗
import time
for i in range(1,11):
print(i)
try: #把可能發生錯誤的代碼放入try裏面,
time.sleep(1)
except KeyboardInterrupt: #當產生KeyboardInterrupt
print('Bey-Bey')
#事後申請原諒比事前申請權限容易
try:
number = int(input('number:'))
result = 100 / number
except (ValueError, ZeroDivisionError) as e:
print('errot', e)
except (KeyboardInterrupt, EOFError):
print('\nBey-Bey')
else: #沒有異常時執行的語句
print(result)
finally: #不論有沒有異常都會執行的語句
print('done')
觸發異常:
raise語句:
想要引發異常,最簡單的形式就是輸入關鍵字raise,後面跟要引發的異常的名稱
執行raise語句時,python會創建指定的異常類的一個對象
raise語句還可以指定對異常對象進行初始化的參數
def set_age(name, age):
if not 0 < age < 150:
raise ValueError('age out of range.')
print('%s is %s years olg') % (name, age)
#斷言:
斷言是一句必需等價於布爾值爲真的判斷
此外,發生異常也意味着表達式爲假
def set_age2(name, age):
assert 0 < age < 150, 'age out of range' #當表達式爲真時,正常指定print語句,爲假時執行報錯語句'age out of range'
print('%s is %s years lod' % (name, age))
if __name__ == '__main__':
set_age('bob', 222)
python try異常處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.