Pythonの試験日31(異常、異常なキャプチャ)

選択科目の手続きについて最近、二つの部分でのレビューのOS、ピクルスモジュールにないチャンス、辞書データ記憶と読みが問題となっていない、確かに、少し忙しい、大体原理を知っているが、具体的な操作は、まだ今、戻って別のを見てする必要があります事前にSTRの関連する方法は忘れて、今日感がきれいですが、新しい知識を学び始めるが、私はpycharmを持っています。

今日では、主な内容は、実際には、ちょうど学ん始まりのようなビットは、比較的簡単で、異常を感じについてです。

  例外は、エラー信号生成プログラムはPythonで、(プログラムエラーが発生したときにプログラムがそれを処理しない場合は、例外が、それは、例外をスローも終了するプログラムを実行します)実行されている、誤トリガ例外は次のとおりです。

 

 

   エラーは2種類に分けられます。

  1.構文エラー、基本pycharm、あなたが表示するのに役立ちますコミットしてはいけません

  2.論理エラーではなく、簡単に確認するには、pycharmにかかわらず、Pythonインタプリタは愛だけですが、時間が本当に実行されているまで待たなければなりません

TypeError例外:int型は、反復ない
ため I  3 パス
とValueError 
NUM = INPUT(" >>:"#を入力ハロー
INT(NUM) 

NameError 
AAA 

はIndexError 
L = [ ' エゴン'' AA ' ] 
L [ 3 ] 

A KeyError例外 
DIC = { ' 名前'' エゴン' } 
DIC [ ' 年齢' ] 

AttributeErrorの
クラスはFoo:パスは
foo.x 

ZeroDivisionError:計算完了できません 
。= RES1を1/ 0 
RES2 = + 1。' STR '
 
2.論理エラー

  以下は、今日の最も重要な部分です。

  Pythonで異なる異常は異常フラグ間違って識別するために異なるタイプ(クラスとPython統一タイプ、カテゴリのすなわちタイプ)のものであってもよいです

  以下は、一般的に使用される例外です。

このようfoo.xとして、オブジェクトツリーにアクセスするためにはAttributeError試みませんが、fooがX-属性はありません
例外IOError入力 / 出力異常を、基本的にはファイル開くことができません
はImportErrorないインポートモジュールやパッケージを、基本的に質問やパス名が間違っている
IndentationError構文エラー(サブクラス)は、コードが適切に整列されていない
ようなxの3つのだけの要素は、アクセスXしようとしているときのように配列の境界の外にはIndexError添字インデックスを[ 5 ] 
ボンドに存在しない辞書にアクセスするためのKeyError例外試行
KeyboardInterruptはCtrl + Cが押され
NameErrorを変数がオブジェクトを指定されていない使用
は違法である、コードはコンパイルされません(個人的には、構文エラー、間違っていると思う)にSyntaxError Pythonコードを
例外TypeError入ってくるオブジェクト型は、の要件を満たしていない
ローカル変数にアクセスするためにUnboundLocalErrorしようとすると、設定されていません、基本的にはグローバル変数のためにそれ以外の場合は、同じ名前、
あなたはそれがアクセスしていることを考えるようにつながった
とValueError発信者タイプの値が正しい場合でも、値を期待していない

一般的な異常

  その他の異常な(または再び1個の間違ったことにより、自由な1つ):

ArithmeticError 
てAssertionError 
はAttributeError 
BaseException 
BufferError 
BytesWarning 
DeprecationWarning 
EnvironmentError 
例外EOFError 
例外
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 
警告
ZeroDivisionError 

更多を异常

  それがエラーに遭遇した場合に堅牢性とフォールトトレランスのプログラムを確実にするために、そのプログラムがクラッシュしない、我々は例外に対処する必要があり、

   エラーが発生する前に予防:エラー状態が予測可能であるならば、我々は場合に対処する必要があります

  操作の前にもありました:

= AGEの10
 しばらく真:
    年齢 = INPUT(' >>:' ).strip()
     IF age.isdigitを(): 文字列のみですが、年齢の整数であるとき、次のコードはエラーではないだろう、条件があります予測 
        年齢= INT(年齢)
         IF年齢== AGEの:
             印刷' あなたはそれを得た' BREAK

エラーが発生した後の処理:エラー状態が予測できない場合は、以外...試みを使用する必要があります

の基本的な構文
のtry 
    コードブロックが検出される
以外の例外タイプ:
    異常検出された場合にしようとすると、この位置の実装の論理
#の
試み
    F =オープン(A.TXT 
    G =(line.strip()以下のためのライン)F
     印刷(次(G))
     を印刷(次(G))
     を印刷(次(G))
     を印刷(次(G))
     を印刷(次(G))
 を除いて呼び出すとStopIteration:
    f.close()

  

あなたは非指定した例外を扱うことができない場合は1例外クラスは、特定の例外を処理するために使用することができます。
S1 = ' こんにちは' 
試し
    int型(S1)
を除いてはIndexError AS E: 捕捉されない例外、直接与えられたプログラム
    を印刷E 

2多分岐 
S1 = ' こんにちは' 
試し
    int型(S1)
を除いてはIndexError AS E:
     印刷(E )
 を除くKeyError例外AS E:
     印刷(E)
 を除くとValueError AS E:
     印刷(E) 

3ユニバーサル例外例外 
S1 = ' こんにちは' 
試してみます
    INT(S1)
を除く例外としてE:
     印刷(E) 

4多分岐異常や異常ユニバーサルあなたが効果をしたい場合は4.1、異常が何であるかに関係なく、我々は統一破棄、またはそれらに対処するために同じコード・ロジックを使用し、ので、それを行うには太字で示し、一つだけ例外十分にあります。4.2あなたが別の例外のために、我々は別の処理ロジックをカスタマイズする必要がある、という効果にしたい場合は、それがマルチブランチを使用する必要があります。

5は、多分岐後の例外かもしれ 
S1 = ' こんにちは' 
試し
    int型(S1)
を除いてはIndexError AS E:
     印刷(E)
 を除くKeyError例外AS E:
     印刷(E)
 を除くとValueError AS E:
     印刷(E)
 を除く例外E AS:
     印刷(E)

6異常他人 
S1 = ' こんにちは' 
試し
    int型(S1)
を除いてはIndexError AS E:
     印刷(E)
 を除くKeyError例外AS E:
     印刷(E)
 を除くとValueError AS E:
     印刷(E)
例外AS Eを除きます:    印刷(E)
印刷トライコードブロック内には、私は例外が実行されていない最後に印刷異常かどうか、モジュールが実行され、通常のクリーンアップが行わ

7アクティブトリガ異常な
試みを昇給の例外TypeError(' タイプのエラー' を除き、例外としてE:
     印刷(E) 

8カスタム例外。
クラスEgonException(BaseException):
     DEF  __init__ (セルフ、MSG):
        self.msg = MSG
     DEF  __str__ (自己):
         戻りセルフ.MSG 

試し昇給 EgonException(' タイプのエラー' を除くEgonException AS E:
     印刷(E) 

9は、アサート:アサート条件
アサート。1. 1 ==  
アサート 1 == 2 10まとめたものでtry..except

 異常なキャッチ利点:

1:エラー処理と実際の作業別々の
2:コードより簡単に整理し、明確かつ容易に複雑なタスクを実装する;
3:間違いなく、より安全な、としませんいくつかのマイナーの監督のためのプログラムが予期せずクラッシュA;

 

主に理論的な知識は、後者の使用は、それだそれ、私はピクルスやOSのモジュールを確認したいだけのように、キーです。

おすすめ

転載: www.cnblogs.com/xiaoyaotx/p/12563464.html