1. 程式人生 > >python學習永久儲存和異常處理

python學習永久儲存和異常處理

 1 >>> import pickle
 2 >>> my_list = [123, 3.14, 'abc',['666']]    #建立一個列表,陣列等
 3 >>> pickle_file = open('my_list.pkl','wb')    #新建一個.pkl資料包檔案並開啟
 4 >>> pickle.dump(my_list, pickle_file)    #把列表儲存進檔案
 5 >>> pickle_file.close()    #關閉
 6 
 7 >>> import
os #檢視檔案位置 8 >>> os.getcwd() 9 'C:\\Users\\zzz\\AppData\\Local\\Programs\\Python\\Python37' 10 11 >>> pickle_file = open('my_list.pkl','rb') #開啟檔案 12 >>> my_list2 = pickle.load(pickle_file) #加載出檔案內容 13 >>> print(my_list) #打印出來 14 [123, 3.14, 'abc', ['
666']]
Python標準異常總結



AssertionError 斷言語句(assert)失敗
AttributeError 嘗試訪問未知的物件屬性
EOFError 使用者輸入檔案末尾標誌EOF(Ctrl+d)
FloatingPointError 浮點計算錯誤
GeneratorExit generator.close()方法被呼叫的時候
ImportError 匯入模組失敗的時候
IndexError 索引超出序列的範圍
KeyError 字典中查詢一個不存在的關鍵字
KeyboardInterrupt 使用者輸入中斷鍵(Ctrl+c)
MemoryError 記憶體溢位(可通過刪除物件釋放記憶體)
NameError 嘗試訪問一個不存在的變數
NotImplementedError 尚未實現的方法
OSError 作業系統產生的異常(例如開啟一個不存在的檔案)
OverflowError 數值運算超出最大限制
ReferenceError 弱引用(weak reference)試圖訪問一個已經被垃圾回收機制回收了的物件
RuntimeError 一般的執行時錯誤
StopIteration 迭代器沒有更多的值
SyntaxError Python的語法錯誤
IndentationError 縮排錯誤
TabError Tab和空格混合使用
SystemError Python編譯器系統錯誤
SystemExit Python編譯器程序被關閉
TypeError 不同型別間的無效操作
UnboundLocalError 訪問一個未初始化的本地變數(NameError的子類)
UnicodeError Unicode相關的錯誤(ValueError的子類)
UnicodeEncodeError Unicode編碼時的錯誤(UnicodeError的子類)
UnicodeDecodeError Unicode解碼時的錯誤(UnicodeError的子類)
UnicodeTranslateError Unicode轉換時的錯誤(UnicodeError的子類)
ValueError 傳入無效的引數
ZeroDivisionError 除數為零



以下是 Python 內建異常類的層次結構:

BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
      +-- StopIteration
      +-- ArithmeticError
      |    +-- FloatingPointError
      |    +-- OverflowError
      |    +-- ZeroDivisionError
      +-- AssertionError
      +-- AttributeError
      +-- BufferError
      +-- EOFError
      +-- ImportError
      +-- LookupError
      |    +-- IndexError
      |    +-- KeyError
      +-- MemoryError
      +-- NameError
      |    +-- UnboundLocalError
      +-- OSError
      |    +-- BlockingIOError
      |    +-- ChildProcessError
      |    +-- ConnectionError
      |    |    +-- BrokenPipeError
      |    |    +-- ConnectionAbortedError
      |    |    +-- ConnectionRefusedError
      |    |    +-- ConnectionResetError
      |    +-- FileExistsError
      |    +-- FileNotFoundError
      |    +-- InterruptedError
      |    +-- IsADirectoryError
      |    +-- NotADirectoryError
      |    +-- PermissionError
      |    +-- ProcessLookupError
      |    +-- TimeoutError
      +-- ReferenceError
      +-- RuntimeError
      |    +-- NotImplementedError
      +-- SyntaxError
      |    +-- IndentationError
      |         +-- TabError
      +-- SystemError
      +-- TypeError
      +-- ValueError
      |    +-- UnicodeError
      |         +-- UnicodeDecodeError
      |         +-- UnicodeEncodeError
      |         +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
           +-- ImportWarning
           +-- UnicodeWarning
           +-- BytesWarning
           +-- ResourceWarning

1 try:
2     f = open('abc.txt')
3     print(f.read())
4     f.close()
5 except OSError as reason:
6     print('檔案出錯啦,錯誤的原因是'+ str(reason))
7 except TypeError as reason:
8     print('型別出錯,錯誤的原因是' + str(reason))

except  (OSError, TyprError):  多種錯誤型別提示

 

try:

  檢測範圍  //出現異常則停止

except Exception[as reason]:

  出現異常後的處理程式碼

finally:

  無論如何都會被執行的程式碼

 

raise 一個錯誤型別  //直接發生一個錯誤

raise OSError('系統錯誤')