1、什么是異常
??異常即“與正常情況不同”,何為正常?正常便是解釋器在解釋代碼時,我們所編寫的代碼符合解釋器定義的規(guī)則,即為正常,當解釋器發(fā)現某段代碼符合語法但有可能出現不正常的情況時,解釋器便會發(fā)出一個事件,中斷程序的正常執(zhí)行。這個中斷的信號便是一個異常信號。所以,總體解釋就是,在解釋器發(fā)現到程序出現錯誤的時候,則會產生一個異常,若程序沒有處理,則會將該異常拋出,程序的運行也隨之終止。我們可以在一個空白的.py文件中寫一句int(“m”),運行后結果如下。
在這里插入圖片描述
這一串字體為解釋器拋出的一系列錯誤信息,因為int()傳入的參數只支持數字字符串和數字,顯然‘m’不屬于數字字符串傳入參數錯誤所以解釋器報“valueError”的錯誤。
2、錯誤和異常的區(qū)別
對于python錯誤的概述:它指的是代碼運行前的語法或邏輯錯誤。拿常規(guī)語法錯誤來說,當我們編寫的代碼過不了語法檢測時,則會直接出現語法錯誤,必須在程序執(zhí)行前就改正,不然寫的代碼將毫無意義,代碼是不運行的,也無法捕獲得到。舉個例子,在.py文件輸入ifa=1print(“hello”),輸出結果如下:
Traceback(mostrecentcalllast):
File"E:/Test_code/test.py",line1
ifa=1print("hello")
^SyntaxError:invalidsyntax
函數print()被檢查到有錯誤,是它前面缺少了一個冒號:,所以解析器會復現句法錯誤的那行代碼,并用一個小“箭頭”指向行里檢測到的第一個錯誤,所以我們可以直接找到對應的位置修改其語法。當然除了語法錯誤,還有很多程序奔潰的錯誤,如內存溢出等,這類錯誤往往比較隱蔽。
相比于錯誤,python異常主要在程序執(zhí)行過程中,程序遇見邏輯或算法問題,這時解釋器如果可以處理,則沒問題,如果處理不了,便直接終止程序,便將異常拋出,如第1小點的int(‘m’)例子,因為參數傳入錯誤導致程序出錯。這種因為邏輯產生的異常五花八門,還好我們的解釋器都內置好了各種異常的種類,讓我們知道是什么樣的異常出現,好讓我們“對癥下藥”。
這里注意一點,上述語法錯誤是可識別的錯誤,所以解釋器也會默認拋出一個SyntaxError異常信息反饋給程序員。所以本質上大部分錯誤都是可被輸出打印的,只是因為錯誤代碼不運行,也就沒法處理,所以捕獲錯誤的異常信息就變得沒意義。
以上內容為大家介紹了對python異常的理解,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://m.2667701.com/