繁体   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