Python学习笔记【week03day5】异常处理,调用栈,打印错误日志,自定义异常,高阶函数

异常处理,调用栈,打印错误日志,自定义异常,高阶函数

异常处理

什么是异常?

  • 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

  • 一般情况下,在Python无法正常处理程序时就会发生一个异常。

  • 异常是Python对象,表示一个错误。

  • 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

语法:

try:
	#有可能发生语句块
except 错误类型1 as e:
	#异常处理
except 错误类型2 as e2:
	#异常处理2
...
#可以有多个异常

finally:
	#无论代码是否出现异常都会执行此语句块

在这里插入图片描述

调用栈

若错误没有捕获,则会一直向上抛,直到抛给python解释器,python解释器
打印错误的堆栈信息然后退出。
在这里插入图片描述
因此查找错误的时候

  • 第一:先看错误类型
  • 第二:从下往上找[必须是你自己写的模块]

打印错误日志

如果不捕获错误,自然可以让python解释器来打印出错误堆栈,但是程序也被结束了,既然我们能捕获错误,就可以把错误堆栈打印出来,然后分析错误的原因,同时让程序继续执行下去。

  • import logging
    在这里插入图片描述

自定义异常

  • 异常并不是凭空产生的,捕获的异常其实就是系统定义异常的类的一个实例。
  • 在我们开发的过程中,我们不但可以捕获异常,我们也可自己自定义异常,主动抛出异常
  • 在自定义异常的时候,可以定义一个错误的class,选择好继承关系,然后,用raise语句抛出一个错误的实例。
  • 在必要的时候我们才进行自定义错误类型,若python 中存在已有的错误类型,我们尽量使用python内置的错误类型。
    在这里插入图片描述

高阶函数

map()函数

功能:将可迭代对象中的元素依次取出作用于func函数,并将作用的结果作为迭代器返回。

map(func,iter1)

  • 参数一:函数 有且只有一个参数
  • 参数二:序列 (可迭代对象)

在这里插入图片描述

  • 这里map()函数做的事情相当于自定义func()做的事

reduce()函数

功能:一个函数作用在序列上,这个函数必须接受两个参数,reduce把结果继续和序列的下一个元素累计运算
import functools
functools.reduce(func,iter1)

  • 参数一:函数 有且只有两个参数
  • 参数二:可迭代对象
    在这里插入图片描述
  • 匿名函数(lambda)以后会经常用到。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值