異常処理try,except,raise

2858 ワード

1.try...except:
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ユーザコード生成の警告