異常処理try,except,raise
2858 ワード
1.try...except:
結果:
エラーが発生する可能性のある文をtryモジュールに置いてexceptで異常を処理します.Exceptは、特定の例外を処理するか、カッコ内の例外のセットを処理することができます.
2.raiseによって例外が発生しました.
3.try...finally:例外が発生するかどうかにかかわらず、プログラムが終了する前にfinallyの文が実行されます.
結果:
4.例外クラスをカスタマイズする:MyExceptionクラスをカスタマイズし、Exceptionを継承する:
10未満の数字を入力すると、MyException例外が発生します.
結果:
5.pythonすべての標準例外クラス:例外名BaseExceptionすべての例外を記述するベースクラスSystemExitインタプリタ要求KeyboardInterruptユーザ割込み実行(通常^C入力)Exception通常エラーのベースクラスStopIteration反復器にはこれ以上値Generator Exitジェネレータ(generator)がありませんSystemExit PythonインタプリタからStandardErrorすべての組み込み標準異常のベースクラスArithmeticErrorすべての数値計算エラーのベースクラスFloatingPointError浮動小数点計算エラーOverflowError数値演算最大制限ZeroDivisionError除算(または型取り)ゼロ(すべてのデータ型)AssertionError断言文失敗AttributeErrorオブジェクトこの属性EOFErrorなし組み込み入力なしEOFに到達EnvironmentErrorオペレーティングシステムエラーのベースクラスIOError入出力操作失敗OSErrorオペレーティングシステムエラーWindowsErrorシステム呼び出し失敗ImportErrorインポートモジュール/オブジェクト失敗KeyboardInterruptユーザー中断実行(通常は入力^C)LookupError非効率データクエリのベースクラスIndexErrorシーケンスにこのインデックス(index)はありませんKeyErrorマッピングにはこのキーがありませんMemoryErrorメモリオーバーフローエラー(Pythonインタプリタでは致命的ではありません)NameError未宣言/初期化オブジェクト(属性なし)UnboundLocalError未初期化ローカル変数Reference Error弱参照へのアクセス(Weak reference)ゴミ回収されたオブジェクトRuntimeErrorの一般的なランタイムエラーNotImplementedErrorがまだ実装されていない方法SyntaxError Python構文エラーIndentationErrorインデントエラーTabErrorTabとスペース混用SystemErrorの一般的な解釈器システムエラーTypeErrorがタイプに対して無効な操作ValueErrorに無効なパラメータUnicodeError Unicode相を入力しようとする関連するエラーUnicodeDecodeError Unicode復号時のエラーUnicodeEncodeError Unicode符号化時エラーUnicodeTranslateError Unicode変換時エラーWarning警告のベースクラスDeprecationWarning廃棄されたフィーチャーの警告FutureWarning将来的に意味が変わる警告OverflowWarning古いものを構築するには自動的にロングフォーム(long)に昇格するの警告PendingDepresationWarningプロパティが破棄される警告RuntimeWarning不審なランタイム挙動(runtime behavior)に関する警告SyntaxWarning不審な構文の警告UserWarningユーザコード生成の警告
a=10
b=0
try:
c=a/b
print c
except ZeroDivisionError,e:
print e.message
else:
print "no error"
print "done"
結果:
integer division or modulo by zero
done
エラーが発生する可能性のある文をtryモジュールに置いてexceptで異常を処理します.Exceptは、特定の例外を処理するか、カッコ内の例外のセットを処理することができます.
except (IOError ,ZeroDivisionError),e:
、except後に例外が指定されていない場合は、デフォルトですべての例外を処理します.各tryには、少なくとも1つのexceptが必要です.2.raiseによって例外が発生しました.
inputValue=input("please input a int data :")
if type(inputValue)!=type(1):
raise ValueError
else:
print inputValue
3.try...finally:例外が発生するかどうかにかかわらず、プログラムが終了する前にfinallyの文が実行されます.
a=10
b=0
try:
print a/b
except:
print "error"
finally:
print "always excute"
結果:
error
always excute
4.例外クラスをカスタマイズする:MyExceptionクラスをカスタマイズし、Exceptionを継承する:
class MyException(Exception):
def __init__(self,message):
Exception.__init__(self)
self.message=message
10未満の数字を入力すると、MyException例外が発生します.
a=input("please input a num:")
if a<10:
try:
raise MyException("my excepition is raised ")
except MyException,e:
print e.message
結果:
please input a num:1
my excepition is raised
5.pythonすべての標準例外クラス:例外名BaseExceptionすべての例外を記述するベースクラスSystemExitインタプリタ要求KeyboardInterruptユーザ割込み実行(通常^C入力)Exception通常エラーのベースクラスStopIteration反復器にはこれ以上値Generator Exitジェネレータ(generator)がありませんSystemExit PythonインタプリタからStandardErrorすべての組み込み標準異常のベースクラスArithmeticErrorすべての数値計算エラーのベースクラスFloatingPointError浮動小数点計算エラーOverflowError数値演算最大制限ZeroDivisionError除算(または型取り)ゼロ(すべてのデータ型)AssertionError断言文失敗AttributeErrorオブジェクトこの属性EOFErrorなし組み込み入力なしEOFに到達EnvironmentErrorオペレーティングシステムエラーのベースクラスIOError入出力操作失敗OSErrorオペレーティングシステムエラーWindowsErrorシステム呼び出し失敗ImportErrorインポートモジュール/オブジェクト失敗KeyboardInterruptユーザー中断実行(通常は入力^C)LookupError非効率データクエリのベースクラスIndexErrorシーケンスにこのインデックス(index)はありませんKeyErrorマッピングにはこのキーがありませんMemoryErrorメモリオーバーフローエラー(Pythonインタプリタでは致命的ではありません)NameError未宣言/初期化オブジェクト(属性なし)UnboundLocalError未初期化ローカル変数Reference Error弱参照へのアクセス(Weak reference)ゴミ回収されたオブジェクトRuntimeErrorの一般的なランタイムエラーNotImplementedErrorがまだ実装されていない方法SyntaxError Python構文エラーIndentationErrorインデントエラーTabErrorTabとスペース混用SystemErrorの一般的な解釈器システムエラーTypeErrorがタイプに対して無効な操作ValueErrorに無効なパラメータUnicodeError Unicode相を入力しようとする関連するエラーUnicodeDecodeError Unicode復号時のエラーUnicodeEncodeError Unicode符号化時エラーUnicodeTranslateError Unicode変換時エラーWarning警告のベースクラスDeprecationWarning廃棄されたフィーチャーの警告FutureWarning将来的に意味が変わる警告OverflowWarning古いものを構築するには自動的にロングフォーム(long)に昇格するの警告PendingDepresationWarningプロパティが破棄される警告RuntimeWarning不審なランタイム挙動(runtime behavior)に関する警告SyntaxWarning不審な構文の警告UserWarningユーザコード生成の警告