開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc., Emacs(Text Editor)
- プログラミング言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7)のVII部(例外)のまとめ演習3.(エラー処理)を解いてみる。
その他参考書籍
3.(エラー処理)
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- import sys, traceback class MyError(Exception): def __init__(self, data, *args): Exception.__init__(self, data, *args) print("クラス例外") def oops(): raise MyError("エラーメッセージ") def func(x, y, z): return x + y + z f = lambda x, y, z, n: (x + y + z) * n def safe(f, *args): try: print(f(*args)) except Exception as err: print(type(err), err, err.args) print("ここからsys.exc_info()") print(sys.exc_info()) print("ここまでsys.exc_info()") print("ここからtraceback.print_exc()") traceback.print_exc() print("ここまでtraceback.print_exc()") safe(func, 2, 3, 4) safe(f, 2, 3, 4, 10) safe(oops)
入出力結果(Terminal)
$ ./sample.py 9 90 クラス例外 <class '__main__.MyError'> エラーメッセージ ('エラーメッセージ',) ここからsys.exc_info() (<class '__main__.MyError'>, MyError('エラーメッセージ',), <traceback object at 0x10badf878>) ここまでsys.exc_info() ここからtraceback.print_exc() Traceback (most recent call last): File "./sample.py", line 21, in safe print(f(*args)) File "./sample.py", line 12, in oops raise MyError("エラーメッセージ") MyError: エラーメッセージ ここまでtraceback.print_exc() $
0 コメント:
コメントを投稿