什么时候用异常处理:不得不用时,无法知道代码会抛出何种异常,进行异常判定时是无效多余的
怎么用:知道可能会出现的指定问题,加上自己的日志
异常处理的基本语句:
try:
’‘’写出可能会抛出异常的代码块‘’
except:
‘’‘抛出异常时,该执行的内容‘’‘
else:
‘’‘try没有抛出异常时,执行的代码’‘’
finally:
‘’‘总是会执行的代码块’‘’
总结一下常见的一系列异常:
StandardError(除数为0,溢出等等),AssertionError(断言异常),IOError(输入输出异常)
IndentationError(缩进异常),ValueError(编解码异常)
如何使用日志来记录错误
import logging
logger=logging.getlogger() //生成一个logging对象
logfile=‘test.log’
hdlr=logging.FileHandler('/xxx/xxx') //创建一个存放日志本地路径
formatter=logging.Formater('%(asctime)s %(levelname)s %(message)s') //生成日志的格式
hdlr.setFormatter(formater) //将内容放到路径句柄中
logger.addHandler(hdlr) //添加路径句柄
logger.setlevel(logging.NOTSET) //设置日志级别
如何抛出异常——使用raise
相当于是手动抛出异常
自定义一个异常的类
class my Exception(Exception)
def __init__(self,error,msg)
self.args=(error,msg)
self.error=error
self.msg=msg
手动抛出
raise myExceptiom(e,'msg')
总结:异常处理其实就是为了程序员在知道程序可能会出现异常的情况下将异常进行抛出,为了代码能都继续执行下去,而不报错。一切在不知道异常的情况下,进行无意义的try...except...finally使用都是多余的