Python實現自定義異常實例
前言
在Python中,拋出自定義異常的語法為 raise 異常類對象
。也就是說可以使用 raise
語句來拋出異常, raise
語句后需要跟一個異常類或異常類的實例。
1、使用 raise 語句來拋出異常
需求:定義一個求和方法
(1)拋出異常類
def add(a, b): # 如果a和b中有負數,就向調用處拋出異常 if a < 0 or b < 0: # raise用于向外部拋出異常,后邊可以跟一個異常類,或異常類的實例 # 此時返回一個異常類 raise Exception # 正常計算并返回結果 r = a + b return r print(add(-123, 456))
結果如下圖:可以看到沒有異常描述信息
(2)拋出異常類的實例
def add(a, b): # 如果a和b中有負數,就向調用處拋出異常 if a < 0 or b < 0: # raise用于向外部拋出異常,后邊可以跟一個異常類,或異常類的實例 # 此時返回一個異常類的實例 raise Exception("傳入的參數不能有負數。") # 正常計算并返回結果 r = a + b return r print(add(-123, 456))
結果如下圖:
2、自定義異常類
自定義異常類,只需要創(chuàng)建一個類繼承Exception
即可。
(1)簡單實現
# 自定義異常類,只需要創(chuàng)建一個類繼承Exception即可 # 自定義異常類完全不用寫任何內容 class MyError(Exception): pass def add(a, b): # 如果a和b中有負數,就向調用處拋出異常 if a < 0 or b < 0: # raise用于向外部拋出異常,后邊可以跟一個異常類,或異常類的實例 # 此時返回一個異常類的實例 raise MyError("傳入的參數不能有負數。自定義的,這樣也行!") # 正常計算并返回結果 r = a + b return r print(add(-123, 456))
結果如下圖:
(2)完整實現
需求:密碼長度不足,則報異常(用戶輸入密碼,如果輸入的長度不足3位,則報錯,即拋出自定義異常,并捕獲該異常)。
# 自定義異常類,繼承Exception class ShortInputError(Exception): def __init__(self, length, min_len): # 用戶輸入的密碼長度 self.length = length # 系統(tǒng)要求的最少長度 self.min_len = min_len # 設置拋出異常的描述信息 def __str__(self): return f'你輸入的長度是{self.length}, 不能少于{self.min_len}個字符' def main(): # 2. 拋出異常: 嘗試執(zhí)行:用戶輸入密碼,如果長度小于3,拋出異常 try: con = input('請輸入密碼:') if len(con) < 3: # 拋出異常類創(chuàng)建的對象 raise ShortInputError(len(con), 3) # 3. 捕獲該異常 except Exception as result: print(result) else: print('密碼已經輸入完成') main()
總結
到此這篇關于Python實現自定義異常實例的文章就介紹到這了,更多相關Python自定義異常內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python實現文本進度條 程序進度條 加載進度條 單行刷新功能
這篇文章主要介紹了python實現文本進度條 程序進度條 加載進度條 單行刷新功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07pycharm遠程連接服務器調試tensorflow無法加載問題
最近打算在win系統(tǒng)下使用pycharm開發(fā)程序,并遠程連接服務器調試程序,其中在import tensorflow時報錯,本文就來介紹一下如何解決,感興趣的可以了解一下2021-06-06