本文由 luzhuo 編寫,**請保留該資訊.
原文:
以下**以python3.6.1為例less is more!
#coding=utf-8
# exception.py 異常
import sys
# === 捕獲異常 (可靈活組合) ===
defexcep
():# - try except -
try:
print(ex)
except: # 捕獲所有異常
print("捕獲異常!")
try:
print(ex)
except: # 通過函式獲取異常資訊
types, value, back = sys.exc_info() # 捕獲異常
sys.excepthook(types, value, back) # 列印異常
try:
print(ex)
except nameerror: # 捕獲指定異常
print("捕獲名字未定義異常!")
except ioerror:
print("捕獲io異常!")
except:
print("捕獲所有異常!")
try:
print(ex)
except (nameerror, ioerror) as e: # 同時捕獲多個異常, 並告知異常原因
print("捕獲多個異常!")
print(e)
except:
print("捕獲所有異常!")
# - try except else -
try:
pass
except:
print("捕獲異常!")
else: # 沒有發生異常是執行該**塊
print("執行正常.")
# - try except else finally -
try:
pass
except:
print("捕獲異常!")
else:
print("執行正常.")
finally: # 不管是否發生異常都執行
print("不管是否發生異常都執行")
# === 自定義異常 ===
# - 編寫自定義異常 -
class
myerror
(exception):
# 繼承 exception
# 重寫並super構造
def__init__
(self, mes = "丟擲乙個異常."):
exception.__init__(self)
self.message = mes
def__str__
(self):
return self.message
# - 使用自定義異常 -
defmyerr
():try:
raise myerror("拋異常!") # 丟擲異常
except myerror as e: # 接住異常
print(e)
# === 斷言語句 ===
defassertdemo
():# 斷言一般用於測試, 如果測試結果為flase,將丟擲assertionerror異常
assert
3 > 4
assert
3 > 4, "拋assertionerror異常"
assert type("string") is str
# *****== 函式呼叫 *****=
if __name__ == "__main__":
excep()
myerr()
assertdemo()
# *****== 函式呼叫 *****=
python3異常例項 Python3 錯誤和異常
錯誤和異常 程式執行時有兩種可以分辨的錯誤 syntax error 和 exception 按中文來說,就是語法錯誤和異常。語法錯誤 語法錯誤也就是解析錯誤,是我們最優可能遇到的錯誤。while true print hello world file line 1,in?while true pr...
Python3 異常處理
python3.5 異常處理 try用法 try except語句主要是用於處理程式正常執行過程中出現的一些異常情況 try finally語句則主要用於在無論是否發生異常情況,都需要執行一些清理工作的場合 完整語句中,else語句的存在必須以except x或者except語句為前提,也就是說el...
Python3 異常捕獲
try.except.用於異常捕獲,當一段 程式執行時出現異常 報錯 會導致整個程式結束,出現異常的地方之後的邏輯 就不會被執行了,所以需要捕獲異常,當捕獲到異常之後,可以對異常進行處理,處理完成之後,可以保證專案中的其他 不會受影響 exception 所有錯誤型別的基類 1.indexerror...