python跟Java一樣,也有類似try...catch...的異常處理機制。 在程序中有做異常處理最大的好處是代碼段出現異常之后,仍然能夠繼續執行下去。
一、捕獲一種具體的異常的寫法:
d = {}
try:
print(d('apple'))
except KeyError as err:
print('Error: {}'.format(err))
print('...')
?
二、如果有多種Error的話,可以這么寫:
#寫法一:
try:
num = input("please input the dividend:")
num = int(num)
num = 100 / num
except (ValueError, ZeroDivisionError) as err:
print('Error:{}'.format(err))
print('...')
#寫法二:
try:
num = input("please input the dividend:")
num = int(num)
num = 100 / num
except ValueError as err:
print('Value Error:{}'.format())
except ZeroDivisionError as err:
print('ZeroDivision Error:{}'.format())
print('...')
#寫法三,更安全的寫法,在你無法保證程序覆蓋所有的異常類型的情況下:
try:
num = input("please input the dividend:")
num = int(num)
num = 100 / num
except ValueError as err:
print('Value Error:{}'.format())
except ZeroDivisionError as err:
print('ZeroDivision Error:{}'.format())
except Exception as err:
print('Other error:{}'.format(err))
#寫法四,匹配任意類型的異常(包括系統異常)
try:
num = input("please input the dividend:")
num = int(num)
num = 100 / num
except ValueError as err:
print('Value Error:{}'.format())
except ZeroDivisionError as err:
print('ZeroDivision Error:{}'.format())
except:
print('Other error')
print('...')
#寫法五,try...except...finally
try:
pass
except:
pass
finally:
pass
?
三、自定義異常:
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return ("Detail_message:{}".format(repr(self.value)))
try:
raise MyError('message')
except MyError as err:
print('error:{}'.format(err))
四、使用場景:
#對json格式的數據進行解碼:
try:
data = json.loads(raw_data)
....
except JSONDecodeError as err:
print('JSONDecodeError: {}'.format(err))
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
