開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)
- Script言語: Python
『初めての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 コメント:
コメントを投稿