zoukankan      html  css  js  c++  java
  • 异常处理/加密/日志

    try...except...else...finally...

    try:
        """操作"""
    except Exception as e:
        """异常的父类,可以捕获所有的异常"""
    else:
        """保护不抛出异常的代码, 当try中无异常的时候执行"""
    finally:
        """最后总要执行的"""

    raise  当程序运行到raise.程序会被中断.并实例化后面的异常对象.抛给调用方.如果调用方不处理.则会把错误继续向上抛出.最终抛给用户.如果调用方处理了异常,那程序可以正常的进行执行

    自定义异常类  只要类继承了Exception类.就是异常类

    class GenderError(Exception):
        pass

     val = traceback.format_exc()   # 获取到堆栈信息 

     print(val)            #获取错误原因

    MD5加密 (不可逆的加密算法)储存密码

    import hashlib
    obj = hashlib.md5(b'abc')    # 加盐
    obj.update('Grace'.encode('utf-8'))   #加密的必须是字节
    text = obj.hexdigest()
    print(text)     #b333de1480cafdf03da6d8ed4fd0ba6c

    日志 (出现异常的时候,向日志里写错误信息)

    import logging
    logging.basicConfig(filename='x1.txt', 
                        format='%(asctime)s - %(name)s - %(levelname)s -% (module)s:  %(message)s',                    
                        datefmt='%Y-%m-%d %H:%M:%S',                    
                        level=10) # 当前配置表示 10以上的分数会被写⼊入⽂文件
    # CRITICAL = 50 
    # FATAL = CRITICAL 
    # ERROR = 40 
    # WARNING = 30 
    # WARN = WARNING 
    # INFO = 20 
    # DEBUG = 10 
    # NOTSET = 0 
    logging.critical("critical")  #50分
    logging.error("error")      # 40分
    logging.warning("warning")  #  30 
    logging.info("info")   # 20 
    logging.debug("debug")     # 10 
    logging.log(2, "definition")      #自定义分数                               

    有两个子系统要分开记录日记,要借助文件助手(FileHandler)

    import logging 
    # 创建⼀一个操作⽇日志的对象logger(依赖FileHandler) 
    file_handler = logging.FileHandler('l1.log', 'a', encoding='utf-8') 
    file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - % (levelname)s -%(module)s: %(message)s")) logger1 = logging.Logger('s1', level=logging.ERROR)
    logger1.addHandler(file_handler) logger1.error(
    '我是A系统') # 再创建⼀一个操作⽇日志的对象logger(依赖FileHandler) file_handler2 = logging.FileHandler('l2.log', 'a', encoding='utf-8')
    file_handler2.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s %(levelname)s -%(module)s: %(message)s")) logger2 = logging.Logger('s2', level=logging.ERROR)
    logger2.addHandler(file_handler2) logger2.error(
    '我是B系统')
  • 相关阅读:
    Java过滤器与SpringMVC拦截器之间的关系与区别
    Linux分区,并且把新的分区挂载到指定的文件夹
    HibernateTemplate和HibernateDaoSupport(spring注入问题)
    EJB到底是什么,真的那么神秘吗??
    Hibernate关联关系配置(一对多、一对一和多对多)
    Druid的使用步骤
    Spring MVC静态资源处理(在applicationContex.xml文件中进行配置)
    Spring <context:annotation-config/> 解说
    hibernate的五大接口
    oracle11g数据库的安装以及安装之后的配置
  • 原文地址:https://www.cnblogs.com/gracenana/p/10211223.html
Copyright © 2011-2022 走看看