zoukankan      html  css  js  c++  java
  • 遇到local variable 'e' referenced before assignment这样的问题应该如何解决

    问题:程序报错:local variable 'e' referenced before assignment

    解决:遇到这样的问题,说明你在声明变量e之前就已经对其进行了调用,定位到错误的地方,对变量进行重新的声明


    通常这样的问题对于python的程序员来说都是因为习惯了python2的语法,转移到python3中时,出现的错误。
    在Python3中,异常对象无法在异常块作用域外访问。(原因是在垃圾收集器运行且从内存中清理引用之前会在内存栈帧中保存一个引用周期)
    通常参考下面这个例子来做异常处理:

    在python2 中:
    import sys

    def bar(i):
    if i == 1:
    raise KeyError(1)
    if i == 2:
    raise ValueError(2)

    def bad():
    e = None
    try:
    bar(int(sys.argv[1]))
    except KeyError as e:
    print('key error')
    except ValueError as e:
    print('value error')
    print(e)

    在python3中:
    import sys

    def bar(i):
    if i == 1:
    raise KeyError(1)
    if i == 2:
    raise ValueError(2)

    def good():
    exception = None
    try:
    bar(int(sys.argv[1]))
    except KeyError as e:
    exception = e
    print('key error')
    except ValueError as e:
    exception = e
    print('value error')
    print(exception)

  • 相关阅读:
    @RequestParam 加与不加的区别
    spring boot 实战
    mongo入门
    npm install 错误记录
    AsyncConfigurer 线程池
    guava Preconditions
    mysql分组、合并语句
    maven的学习以及集成开发软件
    Spring MVC+Junit测试出错---@WebAppConfiguration
    mybatis的代码生成器
  • 原文地址:https://www.cnblogs.com/winterfells/p/6216149.html
Copyright © 2011-2022 走看看