Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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 例外情况为e。e在调试器中不可见_Python_Python 3.x - Fatal编程技术网

Python 例外情况为e。e在调试器中不可见

Python 例外情况为e。e在调试器中不可见,python,python-3.x,Python,Python 3.x,Python 3.6 def get_results(drv): try: table_element = WebDriverWait(drv,60).until(EC.presence_of_element_located((By.TAG_NAME, "tbody"))) except TimeoutException as e: raise TimeoutException(e.message) 屏幕截图: 回溯(最近一次呼叫最后一次): 文

Python 3.6

def get_results(drv):
    try:
        table_element = WebDriverWait(drv,60).until(EC.presence_of_element_located((By.TAG_NAME, "tbody")))
    except TimeoutException as e:
        raise TimeoutException(e.message)
屏幕截图:

回溯(最近一次呼叫最后一次):
文件“/home/michael/PycharmProjects/PoiskOptim/keyword_ficking.py”,第56行,在get_results中
table_element=WebDriverWait(drv,60)。直到(例如,存在位于((By.TAG_NAME,“tbody”)的_element)
文件“/home/michael/PycharmProjects/PoiskOptim/venv/lib/python3.6/site packages/selenium/webdriver/support/wait.py”,第80行,直到
引发TimeoutException(消息、屏幕、堆栈跟踪)
selenium.common.Exception.TimeoutException:消息:
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/home/michael/Documents/pycharm-community-2018.2.3/helpers/pydev/pydevd.py”,第1664行,在
main()
文件“/home/michael/Documents/pycharm-community-2018.2.3/helpers/pydev/pydevd.py”,第1658行,主文件
globals=debugger.run(setup['file'],None,None,is_模块)
文件“/home/michael/Documents/pycharm-community-2018.2.3/helpers/pydev/pydevd.py”,第1068行,运行中
pydev_imports.execfile(文件、全局、局部)#执行脚本
文件“/home/michael/Documents/pycharm-community-2018.2.3/helpers/pydev/_-pydev_-imps/_-pydev_-execfile.py”,execfile中第18行
exec(编译(内容+“\n”,文件,'exec'),全局,loc)
文件“/home/michael/PycharmProjects/PoiskOptim/main.py”,第14行,在
funcs[choice]()
文件“/home/michael/PycharmProjects/PoiskOptim/keyword_filling.py”,第141行,在keyword_filling中
解析所有(短语)
文件“/home/michael/PycharmProjects/PoiskOptim/keyword_filling.py”,第134行,在parse_all中
处理块(drv、短语)
文件“/home/michael/PycharmProjects/PoiskOptim/keyword_ficking.py”,第81行,在handle_块中
获取结果(drv)
文件“/home/michael/PycharmProjects/PoiskOptim/keyword_ficking.py”,第58行,在get_results中
引发TimeoutException(例如消息)
AttributeError:“TimeoutException”对象没有“message”属性
你能帮我了解这里发生了什么事吗。我将TimeoutException设置为e。我希望e至少在调试器中可见。但是不,上下文中没有e

后来添加
问题是:为什么上下文中没有e

这是很明显的。您试图访问
e
变量的
message
属性,该变量恰好是
TimeoutException
类型的对象。在Python3中,异常对象不再具有
message
属性。如果您想打印异常消息,只需使用
str(e)

或使用
e.args[0]
MrLeeh和bruno desthuillers,谢谢您的努力。但问题不在于此。上下文中根本没有e。这就是困扰我的。我编辑了最初的问题。你在使用什么调试器?您的脚本可能在错误的位置中断,并且您已经离开了
try except
black的上下文。尝试在except块内设置断点,然后您应该会看到您的
e
。为什么捕获
TimeoutException
只是为了引发另一个
TimeoutException
??bruno desthuilliers,真的吗。这称为异常转发。
    Traceback (most recent call last):
      File "/home/michael/PycharmProjects/PoiskOptim/keyword_stuffing.py", line 56, in get_results
        table_element = WebDriverWait(drv, 60).until(EC.presence_of_element_located((By.TAG_NAME, "tbody")))
      File "/home/michael/PycharmProjects/PoiskOptim/venv/lib/python3.6/site-packages/selenium/webdriver/support/wait.py", line 80, in until
        raise TimeoutException(message, screen, stacktrace)
    selenium.common.exceptions.TimeoutException: Message:


    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/home/michael/Documents/pycharm-community-2018.2.3/helpers/pydev/pydevd.py", line 1664, in <module>
        main()
      File "/home/michael/Documents/pycharm-community-2018.2.3/helpers/pydev/pydevd.py", line 1658, in main
        globals = debugger.run(setup['file'], None, None, is_module)
      File "/home/michael/Documents/pycharm-community-2018.2.3/helpers/pydev/pydevd.py", line 1068, in run
        pydev_imports.execfile(file, globals, locals)  # execute the script
      File "/home/michael/Documents/pycharm-community-2018.2.3/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
        exec(compile(contents+"\n", file, 'exec'), glob, loc)
      File "/home/michael/PycharmProjects/PoiskOptim/main.py", line 14, in <module>
        funcs[choice]()
      File "/home/michael/PycharmProjects/PoiskOptim/keyword_stuffing.py", line 141, in keyword_stuffing
        parse_all(phrases)
      File "/home/michael/PycharmProjects/PoiskOptim/keyword_stuffing.py", line 134, in parse_all
        handle_chunks(drv, phrases)
      File "/home/michael/PycharmProjects/PoiskOptim/keyword_stuffing.py", line 81, in handle_chunks
        get_results(drv)
      File "/home/michael/PycharmProjects/PoiskOptim/keyword_stuffing.py", line 58, in get_results
        raise TimeoutException(e.message)
    AttributeError: 'TimeoutException' object has no attribute 'message'