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。
更多经验文章,请参考: