【Python学习笔记】异常处理try-except
生活随笔
收集整理的這篇文章主要介紹了
【Python学习笔记】异常处理try-except
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Python異常處理
我們一般使用try-except語句來進(jìn)行異常處理。
使用except Exception as err可以統(tǒng)一捕捉所有異常,而也可以分開處理單個(gè)異常。
# 分開捕捉單個(gè)異常try:num1 = int(input('Enter the first number:'))num2 - int(input('Enter the sencond number:'))print(num1 / num2) except ValueError: #捕捉數(shù)字轉(zhuǎn)化異常print('Please input a digit!') except ZeroDivisionError: #捕捉除0異常print('The second number cannot be zero')# 兩種異常一起捕捉try:num1 = int(input('Enter the first number:'))num2 - int(input('Enter the sencond number:'))print(num1 / num2) except (ValueError,ZeroDivisionError): print('Invalid input!')# 統(tǒng)一捕捉所有異常try:num1 = int(input('Enter the first number:'))num2 - int(input('Enter the sencond number:'))print(num1 / num2) except Exception as err:print('Something webt wrong!')print(err)else語句
try-except還可以和else一起使用,如果語句中沒有異常引發(fā),那么這個(gè)else語句就會(huì)執(zhí)行。
try:num1 = int(input('Enter the first number:'))num2 - int(input('Enter the sencond number:'))print(num1 / num2) except (ValueError,ZeroDivisionError): print('Invalid input!') else:print('Aha, everything is OK.')循環(huán)
如果我們想要用戶直到輸入正確,那么就要使用循環(huán),使用while True加上break語句
while True:try:num1 = int(input('Enter the first number:'))num2 - int(input('Enter the sencond number:'))print(num1 / num2)except (ValueError,ZeroDivisionError): print('Invalid input!')print('Aha, everything is OK.')Finally語句
finally和else不一樣,不管有沒有異常引發(fā),finally語句都要執(zhí)行。
try:num1 = int(input('Enter the first number:'))num2 - int(input('Enter the sencond number:'))print(num1 / num2) except (ValueError,ZeroDivisionError): print('Invalid input!') finally:print('It is a finally clause.')上下文管理器(Context Manager)和With語句
如果我們打開文件使用下面的代碼,在finally語句中,因?yàn)閒可能沒被成功定義,可能還是會(huì)報(bào)錯(cuò)。
try:f = open('data.txt')for line in f:print(line, end ='') except IOError:print('Cannnot open the file!') finally:f.close()而我們可以使用下面的代碼打開文件,通過這個(gè)上下文管理器可以定義和控制代碼塊執(zhí)行前的準(zhǔn)備動(dòng)作及執(zhí)行后的收尾動(dòng)作。
with open('data.txt') as f:for line in f:print(line, end='')轉(zhuǎn)載于:https://www.cnblogs.com/IvyWong/p/9802933.html
總結(jié)
以上是生活随笔為你收集整理的【Python学习笔记】异常处理try-except的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于生sql中的空值
- 下一篇: python后端从数据库请求数据给到前端