Python常见方法(6)-优雅地处理错误和异常

说明:本blog基于python3版本


前言

优雅地处理python的异常或错误是构建稳定程序的重要组成部分.本文主要介绍三种处理异常或错误的格式,方便应用和记忆.
比如我们写一个方法 make_float, 使输入值转化为浮点数并返回
代码如下

def make_float(x):
	return float(x)

但可能会发生异常; 比如, 如果我们把x赋值为string类型, 那么就会产生ValueError; 如果我们把x赋值为tuple类型,就会产生TypeError; 等等
下边我们分别使用三种格式/方法来处理异常

第一种、try + except 格式处理

def make_float(x):
	try:
		return float(x)
	except:
		return x

以上代码就是说, 我们调用make_float函数时, 首先执行try语句后边的代码,如果不发生异常,就直接return float(x) ; 但如果发生异常(无论什么异常),则跳出try语句, 执行except语句后边的 return x. 该方法可以成功规避异常.

第二种、try + except(具体异常) 格式处理

def make_float(x):
	try:
		return float(x)
	except(ValueError):
		return x

以上代码就是说, 我们调用make_float函数时, 首先执行try语句后边的代码,如果不发生异常,就直接return float(x) ; 但如果发生ValueError异常(仅仅是ValueErro),则跳出try语句, 执行except语句后边的 return x. 如果发生TypeError, 那么程序依然会报错, 发生TypeError.程序中断.

第三种、try + except+else + finally 格式处理

def make_float(x):
	try:
		a = float(x)
	except:
		return x
	else :
		return a+2
	finally:
		print("OK")

以上代码就是说, 我们调用make_float函数时, 首先执行try语句后边的代码,如果不发生异常,就继续执行 else 后边语句 return a+2, 最后执行 finally后的语句, print(“OK”); 但如果发生异常(无论什么异常),则跳出try语句, 执行except语句后边的 return x, 最后也依然执行 finally后边语句 print(“OK”). 因此, 我们可以总结, 无论发不发生异常, finally后边语句都要执行.

我们演示一下输入x为string类型的效果.

def make_float(x):
	try:
		a = float(x)
	except:
		return x
	else :
		return a+2
	finally:
		print("OK")

a = make_float("sdf")
print(a)

结果如下,

OK
sdf

没错,正是我们想要的~


总结

写在最后,希望本blog对你的python学习有所帮助,欢迎点赞关注~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Efred.D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值