博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

异常处理/加密/日志

Posted on 2019-01-02 20:54  GraceNana  阅读(251)  评论(0编辑  收藏  举报

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系统')