iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
Software Development

Python 微進階系列 第 16

Python 微進階 Day16 - try except(例外處理) - 2 - assert、with

  • 分享至 

  • xImage
  •  

try except(例外處理)

assert(斷言)

  • 指的是程式進行到某個時間點,斷定其必然是某種狀態,因此不滿足時(false),就會引發錯誤
  • 當系統內建 __debug__ 除錯功能為 true,assert 內的運算式結果為 false,則會引發錯誤
  • 語法:assert 運算式, 參數
assert test, "some message"

# 等同於
if __debug__:
    if not test:
        raise AssertionError("some message")

with

  • with 通常用在具有固定開啟、關閉模式,例如讀取檔案上
  • 等同於實作 try finally,確保最後檔案會關閉 close() 以釋放資源
  • 語法:with ... as .. :
  • 可用於 with 這類型的物件為 Context Manager(上下文管理器、資源管理器、情境管理器)
    • Context Manager 為有實作 __enter____exit__ 兩個方法的 class
try:
    file = open("test.txt", "w")
    file.write("hello world")
finally:
    file.close()


# 等同於
with open("test.txt", "w") as f:
    f.write("hello world")

錯誤行數

import traceback
# 必須先 import
   
try:  
    
except:  
    traceback.print_exc()
    # 可列出錯誤行數

參考資料

次回

過了一半,總算要來看看 class(類別)了!


上一篇
Python 微進階 Day15 - try except(例外處理) - 1 - raise
下一篇
Python 微進階 Day17 - class(類別) - 1 - __init__、method
系列文
Python 微進階31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言