Python异常与日志笔记

异常:

BaseException 所有异常的基类 
SystemExit 解释器请求退出 
Exception 常规错误的基类 
StopIteration 迭代器没有更多的值 
GeneratorExit 生成器(generator)发生异常来通知退出 
FloatingPointError 浮点计算错误 
OverflowError 数值运算超出最大限制 
ZeroDivisionError 除(或取模)零 (所有数据类型) 
AttributeError 对象没有这个属性 
EOFError 没有内建输入,到达EOF 标记 
EnvironmentError 操作系统错误的基类 
IOError 输入/输出操作失败 
OSError 操作系统错误 
WindowsError 系统调用失败 
ImportError 导入模块/对象失败

异常类型:已经存在
异常产生的时机:系统产生
如果产生异常,程序中止:程序不健壮

给程序添加异常,使程序变得健壮

异常不是错误

try:

    有异常的代码例如:1/0

except:

    处理异常

except Exception:

所有异常

finally:一定会执行

不管 try 子句里面有没有发生异常,finally 子句都会执行

当try语句中有return语句的时候,会检查是否有finally语句,若有,会先执行finally语句,在执行return

Python 使用 raise 语句抛出一个指定的异常

自定义异常

class sexException(Exception):

    pass#异常类可以省略属性

   def dosex():

    sex=input("请输入性别:")

    if sex!='男' and sex!='女':

     raise sexException("性别只能为男或女")#Python 使用 raise 语句抛出一个指定的异常

try:

dosex()

except sexException as se:

print(se)


日志

不同的应用程序所定义的日志等级可能会有所差别,分的详细点的会包含以下几个等级: 

DEBUG          最详细的日志信息 
INFO              信息详细程度仅次于DEBUG,通常只记录关键节点信息 
NOTICE 
WARNING      当某些不期望的事情发生时记录的信息(警告) 
ERROR          由于一个更严重的问题导致某些功能不能正常运行时记录的信息 
CRITICAL       当发生严重错误,导致应用程序不能继续运行时记录的信息 
ALERT 
EMERGENCY 

日志等级是从上到下依次升高的,即:DEBUG < INFO < WARNING < ERROR < CRITICAL,而日志的信息量是依次减少的

import logging

LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"

#日志输出格式 时间 日志级别 日志信息

logging.basicConfig(filename='aaa.txt',level=logging.DEBUG,format=LOG_FORMAT)

#aaa.txt为日志保存文件名

def test():

try:

a=int(input("请输入一个被除数:"))

b=int(input("请输入一个除数:"))

print(a/b)

return

except (ValueError):#处理异常

logging.debug("只能输入数字!")

except ZeroDivisionError:

logging.info("除数不能为0")

else:

print("else...")

finally:

print("程序结束")

test()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值