python异常处理

1.什么是异常以及如何处理异常?
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
在执行脚本的时候,会经常遇到比较典型的异常,例如NameError,TypeError,ZeroDivisionError等。在python中,我们用try,except,else,finally来处理异常,我们通过举例说明是如何处理异常:

print('正常打印')
try:
     print(a)                #变量a没有被定义,程序在执行时会在此处报错
     print('westos')
except:
     print('代码运行错误')
else:
     print('运行成功')
 finally:
     print('执行finally')
 print('打印结束')

运行结果:我们可以看到运行了except下面的语句和finally下面的语句
在这里插入图片描述
现在我们让try后面的语句不出错,尝试运行结果

print('正常打印')
try:
     print('a')                #此处不再报错,直接打印a和westos
     print('westos')
except:
     print('代码运行错误')
else:
     print('运行成功')
 finally:
     print('执行finally')
 print('打印结束')

运行结果:可以看到程序运行了try,else,finally后面的语句
在这里插入图片描述
总结:
由上面的代码运行可以看出,当try后面的语句有错的时候,就会执行except后面的语句,当try后面的语句没有出错,则不会执行except后面的语句,而执行else的语句。finally后面的语句不论什么情况总会被执行。

2.触发异常
python提供raise语句自己触发异常, raise语法格式如下:
raise [Exception [, args [, traceback]]]
语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,
args 是自已提供的异常参数。

python的异常有个大基类。然后继承的是Exception。所以我们自定义类也必须继承Exception。

#此处我们定义一个NameError的错误
class AgeError(NameError):
      pass
name = input("姓名:")
if len(name) < 2:
    raise NameError("姓名必须大于2位")
age = int(input("年龄:"))
if age < 0 or age >= 150:
    raise NameError("年龄必须在0<age<150")

运行结果:可以看到程序自行抛出异常

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值