1. 程式人生 > >兄弟連學Python 錯誤和異常處理

兄弟連學Python 錯誤和異常處理

嘗試 dex 訪問 port def post 推薦 log 出現

#常見的異常

class Human:
    #屬性
    sex = man
    age = 18

    #方法
    def run(self):
        print(跑啊~~~)

#實例化對象
#zw = Human()
#print(zw.age)

#AttributeError 嘗試訪問未知的對象屬性
#print(zw.color)

#lists = [‘qtt‘,‘mll‘,‘cyy‘,‘lss‘]
#IndexError 索引錯誤
#print(lists[200])

#dicts = {‘ym‘:‘yongmei‘,‘bd‘:‘baidong‘,‘qw‘:‘qiaowei‘}
#KeyError 鍵錯誤 #print(dicts[‘gg‘]) #KeyboardInterrupt 用戶鍵盤終止程序運行 #while True: #pass #NameError 變量名錯誤 #print(conghao) #IndentationError 縮進錯誤 #def myfunc(): #print(‘111‘) #print(‘222‘) #ZeroDivisionError 除數不能為0 #12/0 #斷言語句 #assert 3 < 1 #try...except語法 用於解決程序異常問題 try: #此區域內嘗試執行某些代碼
girls = [jiaojiao,lele,feifei] #訪問不存在的索引 #print(girls[10]) #訪問不存在的變量 #print(pa) #設置當前區域只接受變量名稱錯誤,並且解決 except NameError:#程序出現異常執行的區域 print(程序[變量名]出現了異常情況!) #設定當前區域只接受索引錯誤,並且解決 except IndexError: print(程序[索引]出現了異常情況!) #接受所有異常的區域,並且解決 except: print(程序出現了錯誤!
) #程序沒有出現任何異常執行的區域 else: print(太好了一個錯誤都沒有) #無論程序有沒有異常都會執行取余 finally: print(工作結束,收工走人) print(++++++++++++) #異常處理的小例子 try: #書寫一個列表 shits = [ershi,yanshi,bishi,shi] #訪問不存在的索引 print(shits[100]) except IndexError as e:#as語法此處的作用是設置一個變量來接受錯誤的異常信息對象 #查看錯誤異常信息 print(e,type(e)) #提供異常的解決方案 print(shits[-1]) try: print(pa) except NameError: print(None) #自定義錯誤類型和處理 #導入系統模塊 import sys #定義獲取信息的函數()文件名,所在函數名,當前行數 def get_head_info(): try: raise Exception except: f = sys.exc_info()[2].tb_frame.f_back return ( f.f_code.co_filename, f.f_code.co_name, str(f.f_lineno)) #不能為負數的異常類型 class FuShuError(RuntimeError):#自定義異常類需要繼承運行時異常類 可以直接或者間接繼承Exception類即可 #添加初始化魔術非法 def __init__(self,errormsg = ‘‘,errorno = ‘‘,errorline = ‘‘,errorfile = ‘‘): #將錯誤信息存入對象 self.msg = errormsg#錯誤信息 self.no = errorno#錯誤編號 self.line = errorline#錯誤行數 self.file = errorfile#錯誤文件 try: #設置年齡 age = -18 #檢測年齡是否合法 if age < 0:#年齡為負數 異常 #拋出異常 raise FuShuError(值為負數,250,get_head_info()[2],__file__) #接受非負數的異常 except FuShuError as e: print(e,type(e)) print(年齡為負數屬於非法數值) age = age * -1 except NameError: print(變量書寫異常) except: print(程序出現異常) print(age) #with語法 ‘‘‘(推薦使用with語法進行文件操作!) #文件讀取操作 #1.打開文件 fp = open(‘09.txt‘,‘r‘) #2.讀取文件 result = fp.read() print(result) #3.關閉文件 fp.close() ‘‘‘ """ #將程序放入try except語法中 try: # 1.打開文件 fp = open(‘09.txt‘, ‘r‘) # 2.讀取文件 result = fp.read() print(result) #故意報錯 print(babi) ‘‘‘ #不行 # 3.關閉文件 fp.close() ‘‘‘ #文件運行出錯可以被OSError接受 except OSError: print(‘程序運行出現問題‘) except NameError: print(‘變量名錯誤‘) ‘‘‘ else:#不行 #3.關閉文件 fp.close() ‘‘‘ ‘‘‘ finally:#不行 #3.關閉文件 fp.close() ‘‘‘ """ #with語法 try: #1.打開文件 #3.with會監控文件的使用自動關閉 with open(09.txt,r) as fp: #相當於 fp = open(‘09.txt‘,‘r‘) #2.讀取文件 result = fp.read() print(result) print(bibi) except OSError: print(操作文件出錯) except NameError: print(變量不存在)

兄弟連學Python 錯誤和異常處理