気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【メモ】Python3例外処理について(Pythonチュートリアル)

  • tryの動作

    • 最初にtry節(キーワードtryとexceptの間にある文)が実行される
    • 例外が送出されなければexcept節はスキップされ、try文の実行が終了する
    • try節の実行中に例外が発生すると、try節中の残りの部分はスキップされる
    • 発生した例外の型がexceptキーワードの後ろで指定してある例外と一致すれば、 except節が実行される。プログラム自体の実行はそのまま続く
    • 例外の型がexcept節にある名前と一致しない場合、送出された例外は  さらに外側にあるtry文に渡される(tryが入れ子になっている場合)
    • ハンドラが見つからないと、未処理例外(unhandled exception)となる
  • try-except-else

    • エラーがない場合の処理を記述
    • try節にコードを追加していくより、elseを使ったほうが良い
    • 例外をインスタンス化して、望みの属性を追加する方法もある
  class Error(Exception):
    """このモジュールの例外ベースクラス"""  
    pass

  try:
    raise Exception('spam', 'eggs')
  except Exception as inst:
    print(type(inst))
    print(inst.args)
    print(inst)