色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Python異常原理及異常捕捉實現過程解析

瀏覽:16日期:2022-08-01 10:39:57

關于選課程序,最近著實有點忙,沒機會復習os、pickle兩部分模塊,所以數據儲存和字典讀取成為了一個問題,大致原理知道,但是具體操作可能還是得返回去再好好看看,所以目前就提前開始學習新的知識了,雖然今天感覺str的相關方法忘的是干干凈凈的,但是我有pycharm。

今天主要內容是關于異常,其實有點想最開始剛學的感覺,比較簡單。

異常就是程序運行時發生錯誤的信號(在程序出現錯誤時,則會產生一個異常,若程序沒有處理它,則會拋出該異常,程序的運行也隨之終止),在python中,錯誤觸發的異常如下:

Python異常原理及異常捕捉實現過程解析

錯誤被分為了兩種:

1.語法錯誤,基本pycharm都會幫你顯示出來,不該犯的

2.邏輯錯誤,不太容易看出來,pycharm也不管,只有Python解釋器是真愛,但是也得等到真的運行的時候

#TypeError:int類型不可迭代for i in 3: pass#ValueErrornum=input('>>: ') #輸入helloint(num)#NameErroraaa#IndexErrorl=[’egon’,’aa’]l[3]#KeyErrordic={’name’:’egon’}dic[’age’]#AttributeErrorclass Foo:passFoo.x#ZeroDivisionError:無法完成計算res1=1/0res2=1+’str’

下面是今天最為重要的部分:

在python中不同的異常可以用不同的類型(python中統一了類與類型,類型即類)去標識,一個異常標識一種錯誤

AttributeError 試圖訪問一個對象沒有的樹形,比如foo.x,但是foo沒有屬性xIOError 輸入/輸出異常;基本上是無法打開文件ImportError 無法引入模塊或包;基本上是路徑問題或名稱錯誤IndentationError 語法錯誤(的子類) ;代碼沒有正確對齊IndexError 下標索引超出序列邊界,比如當x只有三個元素,卻試圖訪問x[5]KeyError 試圖訪問字典里不存在的鍵KeyboardInterrupt Ctrl+C被按下NameError 使用一個還未被賦予對象的變量SyntaxError Python代碼非法,代碼不能編譯(個人認為這是語法錯誤,寫錯了)TypeError 傳入對象類型與要求的不符合UnboundLocalError 試圖訪問一個還未被設置的局部變量,基本上是由于另有一個同名的全局變量,導致你以為正在訪問它ValueError 傳入一個調用者不期望的值,即使值的類型是正確的

更多異常(有空還是要挨個錯一遍):

ArithmeticErrorAssertionErrorAttributeErrorBaseExceptionBufferErrorBytesWarningDeprecationWarningEnvironmentErrorEOFErrorExceptionFloatingPointErrorFutureWarningGeneratorExitImportErrorImportWarningIndentationErrorIndexErrorIOErrorKeyboardInterruptKeyErrorLookupErrorMemoryErrorNameErrorNotImplementedErrorOSErrorOverflowErrorPendingDeprecationWarningReferenceErrorRuntimeErrorRuntimeWarningStandardErrorStopIterationSyntaxErrorSyntaxWarningSystemErrorSystemExitTabErrorTypeErrorUnboundLocalErrorUnicodeDecodeErrorUnicodeEncodeErrorUnicodeErrorUnicodeTranslateErrorUnicodeWarningUserWarningValueErrorWarningZeroDivisionError

為了保證程序的健壯性與容錯性,即在遇到錯誤時程序不會崩潰,我們需要對異常進行處理,

如果錯誤發生的條件是可預知的,我們需要用if進行處理:在錯誤發生之前進行預防

之前也是有操作過的:

AGE=10while True: age=input(’>>: ’).strip() if age.isdigit(): #只有在age為字符串形式的整數時,下列代碼才不會出錯,該條件是可預知的 age=int(age) if age == AGE: print(’you got it’) break

如果錯誤發生的條件是不可預知的,則需要用到try...except:在錯誤發生之后進行處理

#基本語法為try: 被檢測的代碼塊except 異常類型: try中一旦檢測到異常,就執行這個位置的邏輯#舉例try: f=open(’a.txt’) g=(line.strip() for line in f) print(next(g)) print(next(g)) print(next(g)) print(next(g)) print(next(g))except StopIteration: f.close()

#1 異常類只能用來處理指定的異常情況,如果非指定異常則無法處理。s1 = ’hello’try: int(s1)except IndexError as e: # 未捕獲到異常,程序直接報錯 print e#2 多分支s1 = ’hello’try: int(s1)except IndexError as e: print(e)except KeyError as e: print(e)except ValueError as e: print(e)#3 萬能異常Exceptions1 = ’hello’try: int(s1)except Exception as e: print(e)#4 多分支異常與萬能異常#4.1 如果你想要的效果是,無論出現什么異常,我們統一丟棄,或者使用同一段代碼邏輯去處理他們,那么騷年,大膽的去做吧,只有一個Exception就足夠了。#4.2 如果你想要的效果是,對于不同的異常我們需要定制不同的處理邏輯,那就需要用到多分支了。#5 也可以在多分支后來一個Exceptions1 = ’hello’try: int(s1)except IndexError as e: print(e)except KeyError as e: print(e)except ValueError as e: print(e)except Exception as e: print(e)#6 異常的其他機構s1 = ’hello’try: int(s1)except IndexError as e: print(e)except KeyError as e: print(e)except ValueError as e: print(e)#except Exception as e:# print(e)else: print(’try內代碼塊沒有異常則執行我’)finally: print(’無論異常與否,都會執行該模塊,通常是進行清理工作’)#7 主動觸發異常try: raise TypeError(’類型錯誤’)except Exception as e: print(e)#8 自定義異常class EgonException(BaseException): def __init__(self,msg): self.msg=msg def __str__(self): return self.msgtry: raise EgonException(’類型錯誤’)except EgonException as e: print(e)#9 斷言:assert 條件assert 1 == 1 assert 1 == 2#10 總結try..except

異常捕捉的優勢:

1:把錯誤處理和真正的工作分開來

2:代碼更易組織,更清晰,復雜的工作任務更容易實現;

3:毫無疑問,更安全了,不至于由于一些小的疏忽而使程序意外崩潰了;

主要是理論知識,后期使用才是關鍵,就像我要復習的pickle和os模塊一樣,就是這些了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 波多野结衣免费视频观看 | 女人张开腿让男人捅爽 | 国产毛片久久久久久国产毛片 | 欧美2区 | 香港全黄一级毛片在线播放 | chinese农村野战videos | 在线观看亚洲成人 | 色欧美与xxxxx | 欧美日韩精品免费一区二区三区 | 亚洲香蕉久久一区二区 | 一级片欧美 | 黄色a三级三级三级免费看 黄色a网 | 欧美japanese孕交| 国产日韩精品一区二区 | 亚洲一区二区在线视频 | 网禁呦萝资源网站在线观看 | 日本一区二区三区高清福利视频 | 亚洲情a成黄在线观看动 | 欧美特级一级毛片 | 亚洲视屏在线 | 国产精品欧美亚洲韩国日本不卡 | 欧美亚洲一级片 | 亚洲品质自拍 | 亚洲在线一区二区三区 | 99热免费| 影音先锋色先锋女同另类 | 色综合夜夜嗨亚洲一二区 | 欧美日韩a级片 | 九九九九热精品视频 | 久久精品国产91久久综合麻豆自制 | 婷婷丁香花麻豆 | 特级毛片aaaa级毛片免费 | 日韩专区亚洲综合久久 | 521a久久九九久久精品 | 欧美一级片播放 | 美国一级特a黄 | 99视频99| 91精品日本久久久久久牛牛 | 女人野外小树林一级毛片 | 亚洲欧美一区二区视频 | 在线 中文字幕 日韩 欧美 |