Pythonを勉強中 vol.4

いや〜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)

  • (著)マーク ルッツ
  • (著)デイビッド アスカー
  • (原著)Mark Lutz
  • (原著)David Ascher
  • (翻訳)夏目 大

オライリージャパン
新品価格:¥ 5,040
中古価格:¥ 4,100
ASIN:4873112109

投稿者:

kishir

趣味: sk8, ピスト、ターンテーブル、レコード 仕事: Python, Objective-C, PHP, JavaScript

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です