2012年9月24日月曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVII部(例外)のまとめ演習1(try/exceptステートメント)を解いてみる。

その他参考書籍

1.

コード(TextWrangler)

sample.py

#!/usr/bin/env python
#-*- coding: utf-8 -*-

def oops():
 raise IndexError

if __name__ == '__main__':
 try:
  oops()
 except IndexError:
  print("IndexErrorが発生")

入出力結果(Terminal)

$ ./sample.py
IndexErrorが発生
$

oopsで発生させる例外をIndexErrorからKeyErrorにかえると、exceptステートメントで例外を捕捉できなくなる。

コード(TextWrangler)

sample.py

$ cat sample.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-

def oops():
 raise KeyError

if __name__ == '__main__':
 try:
  oops()
 except IndexError:
  print("IndexErrorが発生")

入出力結果(Terminal)

$ ./sample.py
Traceback (most recent call last):
  File "./sample.py", line 9, in <module>
    oops()
  File "./sample.py", line 5, in oops
    raise KeyError
KeyError
$

IndexError、KeyErrorといった「名前」はビルトインスコープ。

入出力結果(Terminal)

$ python
Python 3.2.3 (default, Apr 18 2012, 20:17:30) 
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> for x in ['IndexError','KeyError']:
...     if x in dir(__builtins__):
...             print(x + ': 正解!')
... 
IndexError: 正解!
KeyError: 正解!
>>> quit()
$

0 コメント:

コメントを投稿