python异常和断言

目录

异常

在写程序时可能会遇到错误,整个程序就会崩溃,但我们希望程序能检测错误并继续执行。这可以使用try-except语句来处理,把可能出错的语句放在try子句中,如果发生错误,则转到except子句。

try:
	print(2 / 0)
except ZeroDivisionError:
	print('Error: Invalid argument.')

这个代码处理了除数为0的异常。在代码except语句中提到了ZeroDivisionError异常,此外还有其它异常,详见python文档

如果要捕获多个异常时,可以用元组的形式写在同一个exception语句里;如果要捕获全部的异常信息,则可以写成Exception,如

except (ValueError, AttributeError, KeyError):
except Exception:

except语句开始执行后,不会返回try子句执行错误语句后面的句子。

也可以通过raise语句抛出自己的异常。通常,使用try-except语句调用函数,raise语句写在这个函数中,如

def func(one):
	if one == 1:
		raise Exception('ONE')
	print(one)

try:
	func(2)
	func(1)
except Exception as err:
	print('An exception happened: ' + str(err))

捕获异常时的as语句可以获取异常信息。

try-except语句后还可写finally语句,无论try子句是否成功,都会执行finally语句中的内容,如

try:
	a = opne('name.txt')
except exception as e:
	print(e)
finally:
	a.close()

无论文件是否被打开,最终都会被关闭。问价打开的的异常处理还可简化为上下文管理器形式上下文管理器形式

断言

断言是一个完整性检查,确保代码没有做什么明显错误的事情。

s = 'abc'
assert s == 'abc'
s = 'xyz'
assert s == 'abc'

上面代码希望确定字符串sabc。如果检查失败,则抛出异常。

在运行python时,传入-O选项可以禁用断言。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值