Python 提供了一个 try except 语句来捕获和处理异常。异常处理语句的基本语法结构如下:
try:
可能产生异常的代码块
except [(Error1, Error2, ...) [as e]]:
处理异常的代码块1
except [(Error3, Error4, ...) [as e]]:
处理异常的代码块2
该格式中,[] 括起来的部分可以使用,也可以省略;(Error1,Error2,...) 、(Error3,Error4,...) 表示各自的 except 块可以处理异常的具体类型;[as e] 表示将异常类型赋值给变量 e(方便在 except 块中调用异常类型)。
注意,except 后面也可以不指定具体的异常名称,这样的话,表示要捕获所有类型的异常。
另外,从 try except 的基本语法格式可以看出,try 块仅有一个,但 except 代码块可以有多个,这是为了针对不同的异常类型提供不同的异常处理方式。当程序发生不同的意外情况时,会对应不同的异常类型,Python 解释器就会根据该异常类型来决定使用哪个 except 块来处理该异常。
通过在 try 块后提供多个 except 块可以无须在异常处理块中使用 if 判断异常类型,但依然可以针对不同的异常类型提供相
应的处
理逻辑,从而提供更细致、更有条理的异常处理逻辑。
try except 语句的执行流程如下:首先执行 try 中的代码块,如果执行过程中出现异常,系统会自动生成一个异常对象,该异常对象会提交给 Python 解释器,此过程被称为引发异常。当 Python 解释器收到异常对象时,会寻找能处理该异常对象的 except 块,如果找到合适的 except 块,则把该异常对象交给该 except 块处理,这个过程被称为捕获异常。如果 Python 解释器找不到捕获异常的 except 块,则程序运行终止,Python 解释器也将退出。
事实上,无论程序代码块是在try块中,还是在except块中的代码,只要代码块执行时出现异常,系统总会自动生成一个Error对象。如果程序没有为这段代码定义任何except块,Python解释器找不到处理异常的except块,程序停止运行;相反,如果程序出现异常,并且异常被 try 捕获并被 except 处理,程序将继续执行。
举个例子:
try:
a = int(input("输入被除数:"))
b = int(input("输入除数:"))
c = a / b
print("你输入的两个数相除的结果是:", c )
except (ValueError, ArithmeticError):
print("程序发生了数字格式异常、算术异常之一")
except :
print("未知异常")
print("程序继续运行")
程序运行结果为:
输入被除数:a
程序发生了数字格式异常、算术异常之一
程序继续运行
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何理解 python 中的迭代12/04
- ♥ python如何导入随机模块08/20
- ♥ 如何在python中表示绝对值08/19
- ♥ 为什么大多数程序员破解 php 而不是 python?01/14
- ♥ 如何在 python 中使用随机播放?08/29
- ♥ 浅谈Python类命名空间12/12
内容反馈