12 python學習筆記 異常處理,日誌模組

2021-09-09 09:01:25 字數 2549 閱讀 1704

什麼是異常

什麼是錯誤 程式真正執行前

有直譯器發現的一般為語法錯誤 異常一般由邏輯引發

異常處理使用 try 語句實現

格式:try:

#程式**段

except 異常型別:

異常處理**

…except 可以有多條語句,分別處理不同的異常

[else:

沒有異常時的操作

finally:

清理動作

]except 之後不跟任何異常型別時,將捕獲任意異常(其等價於捕獲baseexception、exception)

在python中所有的異常型別都是exception的後代類

因此在我們使用異常型別時捕獲範圍較小的異常類需要放置在前面

如果異常沒有被當前的except捕獲,則向上一級的try語句丟擲,直至被某乙個try語句處理為止。若一直沒有try語句處理則丟擲

例如:

try:

try:

num = input('請輸入兩個數字,使用空格隔開')

num = num.split(' ')

num = [x for x in num if x]

for i in range(len(num)):

num[i] = float(num[i])

num1 = input('請輸入乙個數字:')

print(sum(num))

except valueerror:

print('您輸入的不是數字')

else:

print('else')

finally:

print('inner end')

except typeerror:

print('您輸入的有誤')

print('process end')

定義乙個繼承於 exception 的自定義異常類

我們可以通過raise語句手動丟擲乙個異常

except 子句中如果需要異常例項的內容 則在python3中 使用《異常型別 as e》我們就可以在自語句段中通過變數e獲得捕獲的異常例項。

在2中的語法為 《異常型別,e》

#inally 清理動作一般用於 檔案的關閉,資料的關閉等操作。

class myerror(exception):

"""docstring for myerror"""

def __init__(self, arg):

exception.__init__(valueerror(int))

self.arg = arg

try:

name = input('請輸入乙個使用者名稱:')

if len(name)< 8:

raise myerror('您的使用者名稱長度不足八位')

except myerror as e:

print('e.arg')

擴充套件:檔案基本操作

開啟:f = open(path,module,[encoding])

module 常用值為 r 讀 , w 寫 , a 追加 ,b 二進位制 , r+ 讀寫, w+寫讀

讀取內容:data = f.read() #全部讀取(檔案的內容如果不操作游標則僅能讀取一次)

關閉: f.close()

示例**:

try:

'''各種操作

'''f = false

f = open('file')

'''各種操作

'''except:

pass

finally:

if f:

f.close()

import logging

日誌級別 noteslogging.basicconfig(level=logging.debug

logging.error(『這是乙個日誌資訊』)

logging.info(『這是乙個info資訊』)

logging.debug(『這是乙個debug資訊』)

try:

try:

num = input('請輸入兩個數字,使用空格隔開')

num = num.split(' ')

num = [x for x in num if x]

for i in range(len(num)):

num[i] = float(num[i])

num1 = input('請輸入乙個數字:')

print(sum(num))

except valueerror:

print('您輸入的不是數字')

else:

print('else')

finally:

print('inner end')

except typeerror:

print('您輸入的有誤')

print('process end')

學習筆記 12 python入門 異常處理

立即學習 1.file open 123.txt r r 去讀乙個檔案,如果能開啟就可以 寫入 2.try 嘗試執行需要執行的語句,如有出錯則按照安排好的預案執行。假設目前開啟的路徑沒有123.txt 這個檔案 file open 123.txt r except exception as e 將e...

12 Python函式學習(中)

作用域 區域性和全域性變數 前向引用 deftest name,age 18,args,kwargs print name print age,args,kwargs school test 程式執行從上到下的,這裡的school還沒定義,所以執行報錯。test alex age 20,flag f...

12 Python 檔案處理

資料夾 得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getcwd 返回指定目錄下的所有檔案和目錄名 os.listdir 函式用來刪除乙個檔案 os.remove 刪除多個目錄 os.removedirs r c python 檢驗給出的路徑是否是乙個檔案 os.path.isf...