您好,登錄后才能下訂單哦!
今天小編給大家分享一下Python異常處理如何避坑的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
示例代碼如下:
class Test(object): def division(self, num1, num2): try: if num2 == 0: return '除數(shù)不能為0' avg = num1 / num2 return avg except Exception as e: print('ERROR') finally: print('FINALLY') if __name__ == '__main__': test = Test() print(test.division(6, 0)) # >>> 執(zhí)行結(jié)果如下: # >>> FINALLY # >>> 除數(shù)不能為0
注意:即使有return也要是會執(zhí)行finally的,而且是在return之前執(zhí)行它。那么最后的結(jié)果為。
示例代碼如下:
class Test(object): def division(self, num1, num2): try: avg = num1 / num2 return avg except Exception as e: print('ERROR') else: print('No ERROR') finally: print('FINALLY') if __name__ == '__main__': test = Test() print(test.division(6, 2)) # >>> 執(zhí)行結(jié)果如下: # >>> FINALLY # >>> 3.0
注意:有return時else是不執(zhí)行的。所以執(zhí)行結(jié)果如上面的示例代碼
那么 無 return 時,執(zhí)行結(jié)果又怎樣?
class Test(object): def division(self, num1, num2): try: avg = num1 / num2 # return avg except Exception as e: print('ERROR') else: print('No ERROR') finally: print('FINALLY') if __name__ == '__main__': test = Test() print(test.division(6, 2)) # >>> 執(zhí)行結(jié)果如下: # >>> No ERROR # >>> FINALLY # >>> None
從運行結(jié)果我們得出結(jié)論:無return時,正常執(zhí)行else 。
如果是發(fā)生異常的情況下, else 也是不會執(zhí)行的。代碼示例如下:
class Test(object): def division(self, num1, num2): try: avg = num1 / num2 return avg except Exception as e: print('ERROR') else: print('No ERROR') finally: print('FINALLY') if __name__ == '__main__': test = Test() print(test.division(4, 0)) # >>> 執(zhí)行結(jié)果如下: # >>> ERROR # >>> FINALLY # >>> None
以上就是“Python異常處理如何避坑”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。