Python異常の検出と処理方法

2080 ワード

捕獲異常

#        append  
a = 123
a.apppend(4)
このプログラムを実行すると投げられます。

AttributeError: 'int' object has no attribute 'apppend'
try:except文を使って捕獲します。

#     
a = 123
try:
  a.apppend(4)
except AttributeError:
   print("        append  ")
出力結果は以下の通りです

        append  
複数の異常を捕獲

#     
a = 123
try:
  # a.apppend(4)
  print(1/0)
except AttributeError:
   print("        append  ")
except ZeroDivisionError:
   print("0      ")
出力結果:

0      
もちろんJDK 1.7のように異常を放置してもいいです。

#     
a = 123
try:
  a.apppend(4)
  # print(1/0)
except (AttributeError,ZeroDivisionError) as e:
   print("     %s" %e)
異常タイプを元祖の中に置いて、具体的な異常情報を印刷したいなら、異常情報を名前を付けてプリントしてください。
出力結果は以下の通りです。

     'int' object has no attribute 'apppend'
Exceptionを使ってすべての異常を捕獲します。

#     
a = 123
try:
  print(1/'kk')
except Exception as e:
   print("     %s" %e)
一括してExceptionで捕獲し、出力結果は以下の通りである。

     unsupported operand type(s) for /: 'int' and 'str'
カスタム異常

#     
a = 123
try:
  if a == 123:
    raise NameError("a     123  ")
except NameError as e:
   print("     %s" %e)
ライセキーワードとNameErrが使用できます。出力結果は以下の通りです。

     a     123  
finally文

try:
  print(1/0)
except Exception as e:
   print("     %s" %e)
finally:
   print("  finally")
実行結果は以下の通りです。

     division by zero
  finally
説明は一度投げても、finally文は実行されます。
締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。もっと知りたいなら、下のリンクを見てください。