什麼是異常異常處理使用 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...