2013年6月28日金曜日

開発環境

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

その他参考書籍

まとめ演習3.(エラー処理)

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

class MyError(Exception): pass

def oops():
    raise MyError("カスタム例外")

# python2.7にあったビルトイン関数applyはpython3.3では廃止されたみたい
def safe(func, *args):
    try:
        func(*args)
    except Exception as err:
        import sys, traceback
        print("exc_info: {0}".format(sys.exc_info()))
        print(type(err), err, err.args)
        traceback.print_exc()

if __name__ == '__main__':
    safe(oops)

入出力結果(Terminal)

$ ./sample.py
exc_info: (<class '__main__.MyError'>, MyError('カスタム例外',), <traceback object at 0x1029e2d40>)
<class '__main__.MyError'> カスタム例外 ('カスタム例外',)
Traceback (most recent call last):
  File "./sample.py", line 11, in safe
    func(*args)
  File "./sample.py", line 7, in oops
    raise MyError("カスタム例外")
MyError: カスタム例外
$

0 コメント:

コメントを投稿