Python學習DAY9

Lin叮噹發表於2020-12-18

1.異常:
在這裡插入圖片描述
在這裡插入圖片描述
python中一切都是物件,異常也釆用物件的方式來處理。處理過程:
1)丟擲異常:在執行一個方法時,如果發生異常,則這個方法生成代表該異常的一個物件,停止當前執行路徑,並把異常物件提交給直譯器。
2).捕獲異常:直譯器得到該異常後,尋找相應的程式碼來處理該異常。
2.try–except遇到異常的執行順序在這裡插入圖片描述
3.try–except–else的執行順序在這裡插入圖片描述
4.try–except–else–finally結構:

try:
    a=input("請輸入一個被除數:")
    b=input("請輸入一個除數:")
    c=float(a)/float(b)
except  BaseException as e:
    print(e)
else:
    print(c)
finally:
    print("輸入結束!")


結果:
請輸入一個被除數:10
請輸入一個除數:0
float division by zero
輸入結束!

程式已結束,退出程式碼0

5.一般不要將return放到try–except–else–finally結構中,會發生意想不到的錯誤,建議放到方法最後。
6.with語句在這裡插入圖片描述
7.trackback模組列印異常資訊

import traceback
######異常資訊輸出到指定檔案#####

try:
    print("step 1")
    num=1/0
except:

    with open("d:/a.txt","a") as f:
        traceback.print_exc(file=f)

結果:
在這裡插入圖片描述
8.測試自定義異常類

#測試自定義異常類
class AgeError(Exception):#繼承Exception
    def __init__(self, errorInfo):
        Exception.__init__(self)
        self.errorInfo =errorInfo
    def __str__(self):
        return str(self.errorInfo)+",年齡錯誤,應該在1-150之間"

if __name__=="__main__":#如果為True,模組是作為獨立執行的,可以執行測程式碼
    age=int(input("輸入一個年齡:"))
    if age <1 or age >150:
        raise AgeError(age)
    else:
        print("正常的年齡;",age)


結果:
輸入一個年齡:200
Traceback (most recent call last):
  File "D:/pythonProject/112.py", line 11, in <module>
    raise AgeError(age)
__main__.AgeError: 200,年齡錯誤,應該在1-150之間

程式已結束,退出程式碼1

9.斷點的作用:
在這裡插入圖片描述

相關文章