Python3 入門4 異常

2021-07-30 03:00:08 字數 2025 閱讀 3972

本文由 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...