2015-03-31 41 views
-1

我通過getattr(module,method_name) 調用它的方法並調用這些方法都沒有顯示在回溯中,很難調試 如何調用這些方法顯示在traceback中?回溯用getattr()

回溯:

File "/home/master/venvs/hello_traversal/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    111.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/home/master/djcode/django_traversal_helloworld/traversal/router.py" in route_factory 
    117.  return router.resource_tree_traverse() 
File "/home/master/djcode/django_traversal_helloworld/traversal/router.py" in resource_tree_traverse 
    112.   return self.get_view(view_name, params) 
File "/home/master/djcode/django_traversal_helloworld/traversal/router.py" in get_view 
    74.     TFactory = self.get_path(t_factory_path) 
File "/home/master/djcode/django_traversal_helloworld/traversal/router.py" in get_path 
    45.    m = importlib.import_module(module) 
File "/usr/lib/python2.7/importlib/__init__.py" in import_module 
    37.  __import__(name) 

,但我稱之爲 'post_list_view' 的方法,這是不是在回溯

回答

0

我加入這個代碼決定這個問題:

 try: 
      exc_info = sys.exc_info() 
      ... 
    finally: 
     # Display the *original* exception in traceback exclude KeyError 
     if exc_info[0]: 
      if not isinstance(exc_info[1], KeyError): 
       traceback.print_exception(*exc_info) 
     del exc_info