2012年5月12日土曜日

開発環境

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

3.

python3.xでapply関数は廃止されたみたいなので、python2.7を使うことに。

コード(TextWrangler)

#!/usr/bin/env python2.7
#encoding: utf-8

import sys,traceback

class MyError(Exception):
 def __str__(self):
  return "カスタム例外"
 def __repr(self):
  return "カスタム例外"

def oops():
 raise MyError()
 
def safe(func, *args):
 try:
  apply(func,args)
 except:
  print("type",sys.exc_type)
  print("value",sys.exc_value)
  print("info",sys.exc_info)
  print("traceback")
  traceback.print_exc()

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

入出力結果(Terminal)

$ python2.7 sample.py
('type', <class '__main__.MyError'>)
('value', MyError())
('info', <built-in function exc_info>)
traceback
Traceback (most recent call last):
  File "sample.py", line 17, in safe
    apply(func,args)
  File "sample.py", line 13, in oops
    raise MyError()
MyError: カスタム例外
$

0 コメント:

コメントを投稿