例外処理
1.例外処理アクションは次のとおりです。
- 私はプログラムを終了する必要はありません
- 何かがうまくいかない場合は、プログラムの安定性と堅牢性を確保するために特別な処理を必要とし
2.キャプチャ例外はtry / except文を使用することができます
- 文のキャプチャと処理を除いて異常情報となるよう文は、tryブロック内のエラーを検出するために使用されることを除いて/してみてください。
- あなたは例外が発生したときに、あなたのプログラムを終了したくない場合は、単純にそれをキャプチャしてみてください。
3.構文1
- 除いて...他に...してみてください...
- 例外が発生していない場合は、else文が実行されます
- tryブロックのエラーに異常がある場合、コードブロックを除いて実行されます。
- あなたは、処理結果のプレースホルダを渡すことはできません
#のキャッチすべての例外 のtry : ... 除い: ... 他に: ... #のキャッチすべての例外2 のtry : ... 除いて例外、E: 印刷E 他: ... #同時に例外の複数のキャプチャ異なる例外を作るために、同時処理、同じ反応 試して: コードセグメント1 以外(エラータイプ1、タイプ2エラー、エラータイプ3、...): コード・セグメント2 他: ... #同時に複数の捕捉例外、同時処理、異なる例外に異なる反応を 試して: コード・セグメント1を 除いて(エラータイプ1): コード・セグメント2 を除く(エラータイプ2): コードセグメント3。 除いて(...): ... 他に: ...
例:
#は例外タイプを指定します 試して: FH =オープン(「D:\\テストファイル」、「R 」) プリントfh.read() を除く例外IOError: 印刷 「:エラーが見つからないファイルまたはファイルを読み込みに失敗しました」 他: 印刷 " コンテンツの書き込みをファイルの成功「 fh.close() #異常な例外が取得した 試して: 。1/ 0 を除く例外、E: 印刷E 他: 印刷 」OK 」 #例外のいずれかのタイプを使用しないことを除い 試み: 。1/ 0 を除く: 印刷 「エラー」 他: 印刷 「OK 」
4.構文2
- 最後に...除いて...してみてください...
- 例外は捕獲最終的に実行されるかどうかは、
トライ: コード・セグメント1 以外(エラータイプ1、タイプ2エラー、エラータイプ3、...): コード・セグメント2 最終的に: コードセグメント3
スローイニシアチブ
構文:
- エラーの種類を上げる - 例外を直接スローされたときにプログラムの実行を高めるために
- 注:エラーの種類はクラスでなければならず、このクラスはExceptionのサブクラスであります
#1 入力の年齢は、入力された年齢の範囲0〜100でない場合、プログラムがクラッシュする 年齢= INT(INPUT(' 年齢:' )) IF年齢> 100 や年齢< :0 昇給とValueError
次のように標準的な異常6.python
BaseException | すべての例外の基底クラス |
SystemExitを | 通訳終了要求 |
KeyboardInterrupt | (通常は^ Cを入力してください)実行割り込みユーザー |
例外 | 一般エラーの基本クラス |
呼び出すとStopIteration | これ以上の値をイテレータありません |
GeneratorExit | (発電機)が発生出口例外発生を通知します |
StandardError | すべての標準の例外建て基底クラス |
ArithmeticError | すべての数値誤差基底クラス |
FloatingPointError | 浮動小数点計算エラー |
OverflowErrorを | 最大限界値計算を超え |
ZeroDivisionError | ゼロ(すべてのデータ型)の(又は弾性率)に加え |
AssertionErrorが | アサーションが失敗 |
AttributeError | オブジェクトは、このプロパティを持っていません |
例外EOFError | 内蔵のいかなる入力、EOFマーカーに到達しないように |
EnvironmentError | OSエラーの基本クラス |
例外IOError | 入力/出力操作が失敗します |
OSErrorの | オペレーティングシステムエラー |
WindowsError | システムコールは失敗します |
ImportError | インポートモジュール/オブジェクト失敗 |
LookupErrorが | 無効なクラス・データベースクエリ |
IndexError | このシーケンスインデックス(指数)なし |
KeyError例外 | このキーマッピングなし |
MemoryError | メモリオーバーフローエラー(Pythonインタプリタのために致命的ではありません) |
NameError | 宣言されていない/(無属性)オブジェクトを初期化していません |
UnboundLocalError | ローカルアクセス初期化されていない変数 |
ReferenceError | 弱参照オブジェクト(弱参照)のガベージコレクションにアクセスしようとしています |
ランタイムエラー | 一般的なランタイムエラー |
NotImplementedError | この方法は、実装されていません |
構文エラー | Pythonの構文エラー |
IndentationError | インデントエラー |
TabError | タブとスペースのミックス |
システムエラー | 一般通訳システムエラー |
例外TypeError | 操作の型が無効です |
ValueError | 無効なパラメータが渡されました |
UnicodeError | ユニコード関連のエラー |
UnicodeDecodeError | Unicode 解码时的错误 |
UnicodeEncodeError | Unicode 编码时错误 |
UnicodeTranslateError | Unicode 转换时错误 |
Warning | 警告的基类 |
DeprecationWarning | 关于被弃用的特征的警告 |
FutureWarning | 关于构造将来语义会有改变的警告 |
OverflowWarning | 旧的关于自动提升为长整型(long)的警告 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 |
RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning | 可疑的语法的警告 |
UserWarning | 用户代码生成的警告 |