選択科目の手続きについて最近、二つの部分でのレビューの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のモジュールを確認したいだけのように、キーです。