Python異常処理操作例の詳細

5106 ワード

この例では、Python異常処理動作について説明します.皆さんの参考にしてください.具体的には以下の通りです.
よくある例外
pythonで異なる例外は、異なるタイプ(pythonではクラスとタイプ、すなわちクラスが統一されている)で識別できます.異なるクラスオブジェクトは異なる例外を識別し、1つの例外はエラーを識別します.
AttributeError
オブジェクトにないツリーにアクセスしようとします.fooなどです.xですがfooには属性xがありません
IOError
入出力異常;基本的にファイルを開けません
ImportError
モジュールまたはパッケージを導入できません.基本的にはパスの問題または名前のエラーです
IndentationError
構文エラー(のサブクラス);コードが正しく整列していません
IndexError
下付きインデックスはシーケンス境界を超えており、例えばxが3つの要素しかないのにxにアクセスしようとしている[5]
KeyError
辞書に存在しないキーにアクセスしようとする
KeyboardInterrupt
Ctrl+Cが押される
NameError
オブジェクトがまだ与えられていない変数を使用
SyntaxError
Pythonコードは不正で、コードはコンパイルできません(個人的には文法が間違っていると思っていますが、書き間違えました)
TypeError
受信オブジェクトタイプと要件の不一致
UnboundLocalError
まだ設定されていないローカル変数にアクセスしようとしますが、基本的には同じ名前のグローバル変数があるため、アクセスしていると思っています.
ValueError
値のタイプが正しい場合でも、呼び出し元が望ましくない値を入力します.
その他の例外:
ArithmeticError AssertionError AttributeError BaseException BufferError BytesWarning DeprecationWarning EnvironmentError EOFError Exception FloatingPointError FutureWarning GeneratorExit ImportError ImportWarning IndentationError IndexError IOError KeyboardInterrupt KeyError LookupError MemoryError NameError NotImplementedError OSError OverflowError PendingDeprecationWarning ReferenceError RuntimeError RuntimeWarning StandardError StopIteration SyntaxError SyntaxWarning SystemError SystemExit TabError TypeError UnboundLocalError UnicodeDecodeError UnicodeEncodeError UnicodeError UnicodeTranslateError UnicodeWarning UserWarning ValueError Warning ZeroDivisionError
例外処理
異常処理とは
python解釈器はエラーを検出し、異常をトリガーします(プログラマが自分で異常をトリガーすることもできます).
プログラマは、この例外をキャプチャするために特定のコードを作成します(このコードはプログラムロジックに関係なく、例外処理に関連しています).
スナップに成功すると、別の処理ブランチに入り、プログラムがクラッシュしないようにカスタマイズされたロジックを実行します.これが例外処理です.
なぜ異常処理を行うのですか?
python解析器はプログラムを実行し、エラーが検出された場合、異常をトリガーし、異常がトリガーされて処理されていない場合、プログラムは現在の異常で終了し、後のコードは実行されず、突然クラッシュしたソフトウェアを実行している人がいます.
プログラムの堅牢性とフォールトトレランスを向上させるための異常な処理メカニズムを提供する必要があります
異常処理はどのように行いますか?
まず、異常はプログラムの誤りによるものであり、文法上の誤りは異常処理とは無関係であり、プログラムの実行前に修正しなければならない
一、if判断式の使用
1.if判定式の異常処理は、あるコードに対してのみ行われ、異なるコードセグメントの同じタイプのエラーに対しては、繰り返しifを書いて処理する必要があります.
2.あなたのプログラムに頻繁にプログラム自体とは関係なく、異常処理に関連するifを書くと、コードの可読性が極めて悪くなります.
3.ifは異常を解決できるが、1,2の問題があるだけなので、ifを異常処理に使用できないと妄論してはいけない.
二、pythonは各異常に対して1つのタイプをカスタマイズし、それから特定の文法構造を提供して異常処理を行う.
part 1:基本文法

try:
          
except     :
   try        ,          


part 2:異常クラスは指定された異常を処理するためにのみ使用でき、指定されていない場合は処理できません.

#       ,      
s1 = 'hello'
try:
  int(s1)
except IndexError as e:
  print e


part 3:マルチブランチ

s1 = 'hello'
try:
  int(s1)
except IndexError as e:
  print(e)
except KeyError as e:
  print(e)
except ValueError as e:
  print(e)


part 4:万能異常pythonの異常には、任意の異常、すなわち:

s1 = 'hello'
try:
  int(s1)
except Exception as e:
  print(e)


1.もしあなたが望む効果は、どんな異常が発生しても、私たちは統一的に捨てたり、同じコードロジックを使って彼らを処理したりすることです.では、騒年、大胆にやりましょう.Exceptionは1つだけで十分です.
2.もしあなたが望む効果が、異なる異常に対して異なる処理ロジックをカスタマイズする必要がある場合は、マルチブランチを使用する必要があります.
part 5:異常なその他の機構

s1 = 'hello'
try:
  int(s1)
except IndexError as e:
  print(e)
except KeyError as e:
  print(e)
except ValueError as e:
  print(e)
#except Exception as e:
#  print(e)
else:
  print('try            ')
finally:
  print('      ,       ,         ')


part 6:アクティブトリガ異常

try:
  raise TypeError('    ')
except Exception as e:
  print(e)


part 7:カスタム例外

class EvaException(BaseException):
  def __init__(self,msg):
    self.msg=msg
  def __str__(self):
    return self.msg
try:
  raise EvaException('    ')
except EvaException as e:
  print(e)


part 8:断言

# assert   
assert 1 == 1
assert 1 == 2


part9:try..Exceptの方式ifの方式の利点を比較するtry..exceptこのような異常処理メカニズムはifの代わりに、あなたのプログラムが可読性を犠牲にしない前提で丈夫性と許容誤り性を強化することです.
例外処理では、各例外に対して例外タイプ(pythonではクラスとタイプ、タイプすなわちクラスが統一されている)をカスタマイズし、同じ例外に対して1つのexceptで捉えることができ、マルチセグメントコードを同時に処理できる例外(「複数if判定式を書く必要がない」)がコードを減少させ、可読性を向上させる
tryを使用します.Exceptの方式
1.エラー処理と本格的な作業を分ける2.コードはより組織しやすく、より明確で、複雑な作業任務はより実現しやすい.3.間違いなく、もっと安全で、いくつかの小さな油断でプログラムが意外に崩壊することはありません.
最後にtry...exceptはできるだけ少なく使うべきで、それ自体があなたに添付したプログラムの1種の異常な処理の論理なので、あなたの主要な仕事と関係がありません
このようなものが多くなると、コードの可読性が悪くなり、異常が予知できない場合だけtry...exceptを加えるべきで、他の論理エラーはできるだけ修正すべきです.
さらにPythonに関する内容に興味のある読者は、「Python入門と進級経典教程」、「Python文字列操作技巧要約」、「Pythonリスト(list)操作技巧総括」、「Python符号化操作技巧総括」、「Pythonデータ構造とアルゴリズム教程」、『Python関数使用テクニックまとめ』及び『Pythonファイルとディレクトリ操作テクニックまとめ』
ここではPythonプログラムの設計に役立つことを願っています.