いや〜Lingrが繋がらない。。。
さて今日もPythonをやります。
今日は「try catch」です。
みんなのPythonには掲載されていなかったので、
以前yoshukiさんに頂いた「初めてのPython」を参考にしました。
これは例外処理なんかに使われる。
PHPにもありますね。
try、throw、catch
これは4には無く、5から追加された予約語っす。
Pythonでは、
try、except、else、finaly
っすね。
基本は、
try:
action()
except NameError:
…..
except TypeError:
…..
except:
…..
else:
…..
こんな感じらしい。
※初めてのPythonから引用っす。
気をつける事は、
elseの解釈と例外名を指定しないexceptですね。
簡単に自分の中で解釈すると、
まずは、例外が発生しなかった場合
1. tryでaction()を実行
2. 例外が発生しないので、elseを実行
次に指定した例外以外の例外が発生した場合
1. tryでaction()を実行
2. exceptを実行
※この場合elseは実行されない
最後にNameErrorが発生した場合
1. tryでaction()を実行
2. except NameErrorを実行
こんな感じかな?
elseはtryブロックの中に書くという方法もあるみたい
こんな感じ
try:
action()
# ここへelseの場合の処理を記述
except NameError:
…..
except TypeError:
…..
except:
…..
なるほどなぁ〜。
実際にやってみる。
>>> def type(x, y):
… print x + y
…
>>> try:
… type([0,1,2], “hoge”)
… except NameError:
… print “NameError”
… except TypeError:
… print “TypeError”
… else:
… print “Complete”
…
…
TypeError
TypeErrorが発生されたので、
例外名TypeErrorを実行した。
exceptには4つ書き方があるみたい。
・except 例外名:
・except 例外名, value:
・except (例外名, 例外名):
・except (例外名, 例外名), value:
後は、finally
こいつはいわゆる「後処理」に使用されるみたい。
例えば、
ファイルを扱う処理の場合に必ずファイルをクローズするなど。
確かに必要。
このtryでの例外処理と一緒に使用されるのが、raise。
こいつもまた試してみないとなぁ〜。
初めてのPython 第2版 オライリージャパン(2004-11)
新品価格:¥ 5,040 中古価格:¥ 4,100 ASIN:4873112109 |