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()