1.由于开发者将关键字敲错导致的,这类错误多数产生的是SyntaxError: invalid syntax(无效的语法),这将直接导致程序不能运行。这类异常是显式的,在开发阶段很容易被发现。还有一类是隐式的,通常和使用者的操作有关。
表1.Python中常见的异常
2.异常处理语句
2.1try...except语句,把可能产生异常的代码放在try语句块中,把处理结果放在except语句块中。语法格式如下:
try:
block1
except [ExceptionName [as alias]]:
block2
参数说明:■ block1:表示可能出现错误的代码块。■ ExceptionName [as alias]:可选参数,用于指定要捕获的异常。其中,ExceptionName表示要捕获的异常名称,如果在其右侧加上as alias,则表示为当前的异常指定一个别名,通过该别名,可以记录异常的具体内容。■ block2:表示进行异常处理的代码块。在这里可以输出固定的提示信息,也可以通过别名输出异常的具体内容。
应用实例:
在try....except语句中再添加一个不能输入小数的异常处理:
2.2 try...except...else语句
else子句,用于指定当try语句块中没有发现异常时要执行的语句块,该语句块中的内容当try语句中发现异常时,将不被执行。
2.3 try...except...finally 语句
其语法格式如下:
try:
block1except [ExceptionName [as alias]]:
block2
finally: block3
对于try…except…finally语句的理解并不复杂,它只是比try…except语句多了一个finally语句,如果程序中有一些在任何情形中都必须执行的代码,那么就可以将它们放在finally代码块中。
2.4 使用raise语句排除异常
语法格式如下:
raise[ExceptionName[(reason)]]
如上面的例子,增加一个当苹果数量小于小朋友的数量时,应抛出一个异常:
3.使用assert语句调试程序
基本语法如下:
assert expression [,reason]
参数说明:■ expression:条件表达式,如果该表达式的值为真时,什么都不做,如果为假时,则抛出AssertionError异常。■ reason:可选参数,用于对判断条件进行描述,为了以后更好地知道哪里出现了问题。
例:在上面的程序中添加一个assert语句,验证苹果数量是否小于小朋友的数量: