簡體   English   中英

我應該拋出哪個Python異常?

[英]Which Python exception should I throw?

我正在編寫一些代碼來操縱Windows剪貼板。 我要做的第一件事是嘗試使用Windows API中的OpenClipboard()函數打開剪貼板:

if OpenClipboard(None): 
    # Access the clipboard here     
else:
    # Handle failure

此功能可能會失敗。 因此,如果有的話,我想提出一個例外。 我的問題是,我應該提出哪些標准的Python異常? 我認為WindowsError是正確的選擇,但不確定。 有人可以給我一個建議嗎?

最好避免直接引發標准異常。 創建自己的異常類,從最合適的異常類繼承( WindowsError可以)並引發它。 這樣,您將避免自己的錯誤和系統錯誤之間的混淆。

WindowsError似乎是一個不錯的選擇,它將為您記錄更多的錯誤信息。 從文檔:

WindowsError異常
在發生Windows特定錯誤或錯誤號與errno值不對應時引發。 Winerror和strerror值是根據Windows Platform API的GetLastError()和FormatMessage()函數的返回值創建的。 errno值將winerror值映射到相應的errno.h值。 ...

引發Windows錯誤並為其提供一些額外信息,例如

raise WindowsError("Clipboard can't be opened")

然后,在對其進行調試時,它們可以告訴您Windows錯誤的含義,而不僅僅是一個無所不能的隨機Windows錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM