今日もPythonお勉強。
エラーと例外から。
エラー
エラーには、構文エラーと例外の2種類がある。
例外の処理
プログラムで選択した例外を処理させることができる。
try:
statements1
except Exception:
statements2
try節で発生した例外が、except節にある名前(上記ではException)と一致しなければ、
except節は実行されない。
このような例外のことを「未処理例外」といい、メッセージ表示後実行が終了する。
except節は、try節の中で発生した例外のみ処理をする。
except節中で発生した例外を処理したりはしない。
try/except文にはオプションでelse節を入れることができる。
try:
statements1
except Exception:
statements2
else:
statements3
else節の記述する場所は、全てのexcept節の後ろでなければならない。
else節は、try節中で例外が発生しなかった場合のみ実行される。
例外の引数
例外に値が付随することがある。この値のことを例外の引数という。
except節では、例外名の後に変数を指定することができる。
この変数には例外のインスタンスがバインドされる。
try:
statements1
except Exception, inst
statements2
例外の送出
raise文により例外を送出できる。
raise 例外名, オプション
第一引数は例外名を指定する。
第二引数はオプションを指定する。
オプションは「例外の引数」となる。
ユーザ定義例外
例外クラスを作成することで、独自の例外を作成することができる。
通常Exceptionクラスの派生クラスにする。
例外クラスでは通常のクラスにできることは何でもできるが、
通常、複雑にはしない。
また、ユーザ定義例外は名前の最後を"Error"とする習慣がある。
クリーンアップ
try文のexcept節以外の節にfinally節がある。
これはクリーンアップ動作を定義することを意図したもの。
finally節はtry節で例外は発生しようと、しまいと常に実行される。
また、break、continue、return文により抜ける際にも、必ず実行される。
try:
statements1
except Exception:
statements2
else:
statements3
finally:
statements4
のように記述できる。
(「初めてのPython」ではexcept節と一緒に使えないようなことが書いてあった気がするが、気のせいだったと。)
with文
with文を使えば、オブジェクトを使用後すぎに適切な方法でクリーンアップされることを保証させることができる。
ただし、オブジェクトにクリーンアップ動作が定義されているものに限る。
ファイルオブジェクトはクリーンアップ動作が定義されている。
with open("abc.txt") as f
for line in f:
print line
上記の例では、実行後ファイルfは必ずクローズされる。
おしまい。
.
0 コメント:
コメントを投稿