Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用堆栈跟踪来告诉我应该为Python使用哪个异常';我们试试看_Python_Python 2.7_Error Handling_Try Except - Fatal编程技术网

如何使用堆栈跟踪来告诉我应该为Python使用哪个异常';我们试试看

如何使用堆栈跟踪来告诉我应该为Python使用哪个异常';我们试试看,python,python-2.7,error-handling,try-except,Python,Python 2.7,Error Handling,Try Except,我想编写一个Try/Except块,用于捕获导致此堆栈跟踪的特定错误: File "/home/me/anaconda2/envs/deepnn/lib/python2.7/site-packages/tensorflow/python/debug/wrappers/local_cli_wrapper.py", line 292, in _prep_cli_for_run_start self._run_cli = ui_factory.get_ui(self._ui_type)

我想编写一个Try/Except块,用于捕获导致此堆栈跟踪的特定错误:

  File "/home/me/anaconda2/envs/deepnn/lib/python2.7/site-packages/tensorflow/python/debug/wrappers/local_cli_wrapper.py", line 292, in _prep_cli_for_run_start
    self._run_cli = ui_factory.get_ui(self._ui_type)
  File "/home/me/anaconda2/envs/deepnn/lib/python2.7/site-packages/tensorflow/python/debug/cli/ui_factory.py", line 61, in get_ui
    return curses_ui.CursesUI(on_ui_exit=on_ui_exit, config=config)
  File "/home/me/anaconda2/envs/deepnn/lib/python2.7/site-packages/tensorflow/python/debug/cli/curses_ui.py", line 289, in __init__
    self._screen_init()
  File "/home/me/anaconda2/envs/deepnn/lib/python2.7/site-packages/tensorflow/python/debug/cli/curses_ui.py", line 404, in _screen_init
    self._screen_color_init()
  File "/home/me/anaconda2/envs/deepnn/lib/python2.7/site-packages/tensorflow/python/debug/cli/curses_ui.py", line 409, in _screen_color_init
    curses.use_default_colors()
_curses.error: use_default_colors() returned ERR
但无法确定如何确定正确的异常是什么

为了获得更多信息,我写了以下内容:

        try:
             ... call to procedure that generates error ...
        except Exception,e:
            print("type is:", e.__class__.__name__)
            import sys
            print(sys.exc_info())
我得到的结果是:

type is: error
(<class '_curses.error'>, error('use_default_colors() returned ERR',), <traceback object at 0x7fdec55abdd0>)
> /home/me/Projects/kerasECOC/net_manager.py(164)init_model_architecture()
我收到以下错误消息:

  File "/home/me/Projects/kerasECOC/net_manager.py", line 157, in init_model_architecture
    except error,e:
NameError: global name 'error' is not defined

那么,我如何确定要标记哪个特定的异常呢?

因为回溯表明您应该使用
诅咒。错误

import curses

try:
    ...
except curses.error as err:
    print(err)
您可以检查
curses.error.mro()
中的基类,也可以检查以下基类:

>>> curses.error.mro()
[<class '_curses.error'>, <class 'Exception'>, <class 'BaseException'>, <class 'object'>]
>诅咒.error.mro()
[, , ]

不过,它并不是从某个数据库继承来的。

谢谢-我被回溯说“诅咒”而不是“诅咒”这一事实弄糊涂了,但这是有效的。
>>> curses.error.mro()
[<class '_curses.error'>, <class 'Exception'>, <class 'BaseException'>, <class 'object'>]