python代码,如何使用assert断言及raise抛出异常?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
在gis
开发课上,老师说请不要使用各种各样的判断来做各种参数合法性检测。思路是:相信每个参数都是合法的,然后使用assert
断言来阻断其中潜在的危险。那么,本文中主要学习的就是断言assert
的使用,以及如何使用raise
主动抛出异常。
苏南大叔个人觉得:还是写很多if
比较好,这种assert
会阻碍程序执行....
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文主要使用两个python
函数:assert
和raise
。测试环境:win10
,python@3.6.8
。
assert函数
首先看看assert
函数的help
输出。
官方说明看起来有些多,苏南大叔觉得最基本的用法就是下面这样的:
assert 条件 , 条件失败的文字输出
测试代码:
a = 1
assert a <= 2, "条件1,校验失败"
assert a > 2, "条件2,校验失败"
print("continue")
这个代码中,这里的assert
断言和普通的if
之类的语句做对比的话,这里发生错误的话,就是fatal error
级别的,异常名称为AssertionError
。
- 第一个断言中,因为条件1通过,并没有被断下。
- 第二个断言中,因为条件2没有通过,所以被断下输出设定的异常信息。
- 同时最后一句
continue
因为已经被断下了,并没有被输出。
raise
raise
的官方帮助说明,说明如下:
测试代码:
raise ZeroDivisionError('除数为0')
raise TypeError
如果主动抛出第一个例子中的断言异常的话,代码如下:
raise AssertionError('主动抛出的断言异常')
相关链接
综述
本文使用assert
进行断言,当条件不符合的时候会直接输出异常信息。当然,也可以使用raise
函数直接抛出异常信息。不论是哪种异常信息,这种手动抛出的异常都会阻碍程序的运行,是个fatal error
。
更多经验文章,请参考:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。