python try except exception_Python try…except 异常处理模块

作用:

处理程序异常、抛出异常、友好输出异常

1. 如何捕获异常、处理异常

格式:

try:

pass

exceptValueError as e:

pass

exceptException as e:

pass

else:

pass

finally:

pass

相关注释:

try 包含在try下的所有代码块都会进行异常检测处理

execpt 处理异常 其后面的e(标准故障信息)可以指定也可以不指定

finally 不管是否出现异常都会执行其下面的代码块

具体如下图所示:

850794-20151218113343459-1679200316.jpg

2. 异常的种类

上面的故障处理模块只检测了Exception异常类,其实这个故障是所有异常的基类(父类) 无论什么异常都可以用他进行处理,不过在程序中要处理指定异常那么就必须使用相关的派生类(子类)比如:

IndexError 下标错误

KeyError key错误

NameError 名称错误

ValueError 值错误

那么如果我定义了NameError 和 ValueError Exception等等这些异常处理标签如果我有一个ValueError的异常该如何进行处理呢?请看下图

850794-20151218113345006-1608511331.jpg

异常会从上到下一条条匹配异常处理标签直到匹配到为止 ExceptError在正常情况下放在异常处理程序的最末端 来处理未知异常,如果有些异常需要特殊操作为,放在“except ExceptError”的上面。

3. 自定义异常

了解自定义异常之前 首先需要理解两个概念:

1. 类中的方法__str__(self) 执行类的时候会返回其中的内容 用于输出异常信息

例如:

#定义Alan_class类classAlan_class(Exception):

#定义__str__方法

def__str__(self):

#指定输出信息

return'Alan Error'

#执行类Alan_classprintAlan_class()

输出结果为:

Alan Error

2. raise 抛出异常

比如 执行 raise ValueError() 那么就会抛出一个 ValueError值错误的异常

了解完上面的两个知识点下面开始了解如何进行定义自己的异常

850794-20151218113346427-420685408.jpg

通过上图我们简单的梳理下:

第一步:定义异常

class 异常名称 (Exception):

def __init__(self,msg)

self.message=msg

def __str__(self): //定义__str__函数处理异常

判断是否输入了自定义的异常信息

if 输入了:

return ‘自定义异常信息’

else:

rerun ‘默认异常信息’

第二步:抛出并处理异常

raise 异常名称(‘自定义异常信息’) //触发异常

except 异常名称,异常信息

print 异常信息

4. assert 断言

如果assert断言的条件为假,则抛出异常AssertError,等同于 判断+raise

try:

#如果两个字符串不相等则为假抛出异常

assert'Lisa'== 'Alan'

#except处理异常exceptException:

print'name not same'

执行结果:

name not same

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值