来への参照:PythonCookbook
まず第一に、あなたは、すべての異常なものクラスを知っています。
すべての異なる異常を処理するコードの単一のブロックならば、彼らはタプルの一つに分類することができます。
urllib.error輸入URLErrorのから 試してみてください。 object.get_url(URL) (URLError、とValueError、SocketTimeout)を除い: object.remove_url(URL)
キャプチャこのエラー元祖(URLError、とValueError、SocketTimeout)がobject.remove_url実行されます(URL)
シングルは異なるアプローチを取る場合、それは除いて別々に配置することができます
試してみてください。 object.get_url(URL) (URLError、とValueError)を除いた: object.remove_url(URL) SocketTimeout除い: object.other_do(URL)
このような例外のために、あなたは、基本クラスを指定することで、すべての例外をキャッチすることができ、継承階層に分類され、多くがあります。
試し: F =オープン( 'A.TXT') (FileNotFoundError、PermissionError)を除い: ... 試し: F =オープン( 'A.TXT') :OSErrorのを除いて ... サブクラス、次の調査中# 印刷(OSErrorのサブクラス.__ __()) を印刷()
#ビューは、テーブル継承された プリント(FileNotFoundError .__ mro__)
[<クラス'ConnectionError'>、<クラスのBlockingIOError '>、<クラスのChildProcessError'>、<クラスのFileExistsError '>、
<クラスのFileNotFoundError'>、<クラスのIsADirectoryError '>、<クラスのNotADirectoryError'> <クラスのInterruptedError '>、
<クラスのPermissionError'>、<クラスのProcessLookupError '>、<クラスのTimeoutError'>、<クラスのio.UnsupportedOperation '>、<クラスのsignal.ItimerError'>] (<クラスのFileNotFoundError '>、<クラスのOSErrorの'>、<クラスの例外'>、<クラスのBaseException'>、<クラスのオブジェクト'>)
この本は、厳格なローカルなものではありません、エラーの種類はますます明白OSErrorのは含まれています。
我々Eとしても、eは間違ったインスタンスに捕獲されたことができ、例えば、その後、彼らはあなたにもタイプ(e)の正確な捕捉を容易にする方法により、電子の種類を表示することができ、属性の束を持っている必要があります。
前記エラープロパティは、エラーコードをキャプチャすることができます。
以下は実行されませんを除いて、適切な例外キャプチャダウンを実行する点が異なります。
試し: F =オープン( 'A.TXT') OSErrorのAS Eを除く:
印刷(DIR(E)) を印刷( 'OSErrorの') #は確かにこれを実行していない、それはFileNotFoundError OSErrorの親クラスである必要があり、それはそれが含まれていますすべての例外がキャッチされ FileNotFoundError除い: 印刷(「FileNotFoundError」)
次OSErrorの上のオブジェクトの属性で、
[ '__cause__'、 '__class__'、 '__context__'、 '__delattr__'、 '__dict__'、
'__ DIR__'、 '__doc__'、 '__eq__'、 '__format__'、 '__ge__'、 '__getattribute__'、 '__gt__'、
' __hash__」、 '__init__'、 '__init_subclass__'、 '__le__'、 '__lt__'、 '__ne__'、 '__new__'、
'__reduce__'、 '__reduce_ex__'、 '__repr__'、 '__setattr__'、 '__setstate__'、 '__sizeof__' 、 '__str__'、
'__subclasshook__'、 '__suppress_context__'、 '__traceback__'、 '引数'、 'characters_written'、 'エラー番号'、 'ファイル名'、 'ファイル名2'、 'にstrerror'、 'with_traceback']
すべての例外をキャッチ
試してみてください ... 十分なこと#一般的なエラー :例外を除き、AS Eが ... #これは間違っている父である BaseException AS Eを除きます: ...
SystemExitを、KeyboardInterrupt、およびGeneratorExitに加えて、例外をキャプチャすることができます