您的位置:首页 > 编程语言 > Python开发

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

2019-06-21 20:14 423 查看

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

异常处理

什么是异常?

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

  • 一般情况下,在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)以后会经常用到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: