python3.7异常小记

2019-02-22  本文已影响0人  草珊瑚_6557

首先上示例代码:

s1 = 'hello'
try:
    int(s1)
except IndexError as e:
    print('IndexError', e)
except KeyError as e:
    print('KeyError', e)
except ValueError as e:
    print('ValueError', e)
except Exception as e:
    print('Exception', e)
else:
    print('try内代码块没有异常则执行我')
finally:
    print('无论异常与否,都会执行该模块,通常是进行资源释放工作')

这段代码包含了,异常分支类型捕获无异常捕获有无异常都会捕获的执行逻辑。

捕获全局异常

对入口函数进行try...except

异常写入日志文件

示例代码:

import os

s1 = 'hello'
try:  
    int(s1)
except:  
    f=open(os.path.abspath('./log.txt'),'a')  
    traceback.print_exc(file=f)  
    f.flush()  
    f.close() 

异常作用域

try,except,else,finally代码块里声明的变量,外部都能访问。

作用域的产生

1,只有当变量在Module(模块)、Class(类)、def(函数)中定义的时候,才会有作用域的概念。
2,在作用域中定义的变量,一般只在作用域中有效。
3,在if-elif-else、for-else、while、try-except/try-finally等关键字的语句块中并不会产生作用域

上一篇下一篇

猜你喜欢

热点阅读