我应该扔哪个Pythonexception?

我正在写一些代码来操纵Windows剪贴板。 我做的第一件事就是尝试用Windows API中的OpenClipboard()函数打开剪贴板:

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

这个function可能会失败。 所以如果有的话,我想提出一个例外。 我的问题是,我应该提出哪些标准的Pythonexception? 我想WindowsError会是正确的,但不能确定。 有人可以给我一个build议吗?

例如,提高Windows的错误,并给它一些额外的信息

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

然后,当它被调试,他们可以告诉你的Windows错误意味着什么,而不是一个随便的windowserror什么都没有。

避免直接提高标准的例外情况会更好。 创建你自己的异常类,从最合适的一个继承它( WindowsError是好的)并提高它。 这样你就可以避免你自己的错误和系统错误之间的混淆。

WindowsError似乎是一个合理的选择,它会为您记录额外的错误信息。 从文档:

WindowsError异常
当发生特定于Windows的错误时,或者错误编号不对应于errno值时引发。 winerror和strerror值是从Windows平台API的GetLastError()和FormatMessage()函数的返回值创建的。 errno值将winerror值映射到相应的errno.h值。 …