首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

UnboundLocalError有关问题

2012-09-07 
UnboundLocalError问题Python code#!/bin/pythondef fn():try:a0b open(1.py)raise 11#这个异常不

UnboundLocalError问题

Python code
    #!/bin/python    def fn():        try:            a=0            b = open("1.py")            raise "11"  #这个异常不是必然发生,我这里只是假设            c = open("2.py")        except:            if b:                b.close()            if c:                c.close()    if __name__ == "__main__":       fn()

我有一段程序,运行过程中可能会抛异常,所以我想在except中,判断一下,如果对象存在则释放资源,但是会出现
UnboundLocalError: local variable 'c' referenced before assignment

请问我应该怎么改?

[解决办法]
Python code
def fn():    try:        a = 0        b, c = False, False        b = open('1.py')        c = open('2.py')    except:        if b:            b.close()        if c:            c.close()if __name__ == "__main__":   fn()
[解决办法]
C/C++ code
def fn():    a = b = False    try:        a=0        b = open("1.py")        raise "11"  #这个异常不是必然发生,我这里只是假设        c = open("2.py")    except:        if b:            b.close()        if c:            c.close()if __name__ == "__main__":   fn()
[解决办法]
你可以嵌套使用try...except...类似:
Python code
def fn():    try:        a=0        b = open("1.py")        raise "11"  #这个异常不是必然发生,我这里只是假设        c = open("2.py")    except:        try:            b.close()            c.close()        except:            passif __name__ == "__main__":    fn() 

热点排行