2011-03-01 14 views
1

私は、Windowsのクリップボードを操作するためのコードを書いています。私はどのPython例外を投げるべきですか?

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

この関数は失敗する可能性があります:私はまず最初に試してみて、WindowsのAPIからOpenClipboard()機能でクリップボードを開くことです。もしそうなら、私は例外を提起したいと思います。私の質問は、標準的なPythonの例外のどれを私が上げるべきかです。私はWindowsErrorが正しいかもしれないと思っているが、確かではない。誰かが私に提案をしてもらえますか?

答えて

1

はその後、Windowsのエラーを上げ、それをいくつかの余分なINFOMATIONを与え、例えば

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

1

WindowsErrorは合理的な選択で、余分なエラー情報を記録します。ドキュメントから:

例外WindowsError
Windows固有のエラーが発生した場合、またはエラー番号がerrno値に対応しない場合に発生。 winerror値とstrerror値は、WindowsプラットフォームAPIのGetLastError()関数とFormatMessage()関数の戻り値から作成されます。 errno値は、winerror値を対応するerrno.h値にマップします。 ...

3

標準的な例外を直接発生させない方が良いでしょう。独自の例外クラスを作成し、最も適切なクラスから継承してください(WindowsErrorは大丈夫です)。こうすることで、あなた自身のエラーとシステムエラーの混乱を避けることができます。そのは、彼らはあなたの窓のエラーではなく、何もオーバーだけでランダムwindowserrorよりも、何を意味するのか伝えることができ、デバッグされるとき

+0

私は実際にはあなたが引数で元のものを呼び出すことができますWindowsエラーから新しい例外を作成する必要があるとは思わない。 –

+0

@Jakob引数は、あなた自身の例外だけを捕まえるのに役立ちません。 –

+0

しかし例外が発生すると、追加の情報が含まれます。 –

関連する問題