zl程序教程

您现在的位置是:首页 >  后端

当前栏目

异常 巩固2

异常 巩固
2023-09-11 14:21:27 时间
1.找到可能会抛出异常的地方,仅对这几行代码进行异常处理
2.明确会出现的异常类型
    缩进,类型,语法,索引等等
3.捕获出现的异常
    import sys
    exc = sys.exc_info()
    exc[1] 为问题出现的原因
4.日志 logging 模块
    import logging
    logger = logging.getLogger()
    # 获取日志对象
    logfile = 'test.log'
    hdlr = logging.FileHandler('senging.txt')
    # 存储文件日志
    formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
    # 以什么格式进行存储,时间,等级,日志信息
    hdlr.setFormatter(formatter)
    # 导入日志格式
    logger.addHandler(hdlr)
    # 将日志绑定
    logger.setLevel(logging.NOTSET)
    # 设置日志级别
5.断言 assert
    assert 表达式,出错以后抛出的提示信息
    表达式 : 1 > 4   3 > 2  1 == 2 
    断言绝对不能发生的错误,然后再处理异常

程序:
import logging
logger = logging.getLogger()
# 获取日志对象
logfile = 'test.log'
hdlr = logging.FileHandler('senging.txt')
# 存储文件日志
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
# 以什么格式进行存储,时间,等级,日志信息
hdlr.setFormatter(formatter)
# 导入日志格式
logger.addHandler(hdlr)
# 将日志绑定
logger.setLevel(logging.NOTSET)
# 设置日志级别

import sys
try:
    print(a)
except:
    exc = sys.exc_info()
    print(exc[1])
    # 查看异常的问题
    # name 'a' is not defined
    print(exc[0])
    # <class 'NameError'>
    print(exc)
    # (<class 'NameError'>, NameError("name 'a' is not defined"),
         # <traceback object at 0x000002A8BD9DA188>)
    logging.debug(exc[1])

# assert 1 > 4 ,"1 大于 4 出现异常 "
# AssertionError: 1 大于 4 出现异常 

2020-04-12