📜  Python中的 Try、Except、else 和 finally(1)

📅  最后修改于: 2023-12-03 15:34:24.506000             🧑  作者: Mango

Python中的 Try、Except、else 和 finally

在编写Python代码时,我们可能会遇到各种错误和异常,这时就需要用到异常处理机制,以确保程序在出现异常时不会崩溃。

在Python中,异常处理包括四个关键字:tryexceptelsefinally。下面分别介绍它们的作用和用法。

try

try语句的作用是尝试执行一段代码,如果代码块中没有出现错误,则直接跳过except语句,执行else语句(如果有的话),最后执行finally语句。如果代码块中出现了错误,则会跳转到except语句,执行相应的代码块。

下面是try语句的基本格式:

try:
    # 尝试执行一段代码
except Exception as e:
    # 出现异常时执行的代码
else:
    # 代码块中没有出现异常时执行的代码
finally:
    # 不管是否出现异常,都会执行的代码

其中,except语句可选,else语句和finally语句也可选,但try语句至少要包含一个except语句或finally语句。

except

except语句用来处理try语句中出现的异常,捕获特定类型的异常并进行相应的处理。如果没有指定特定类型的异常,则捕获所有异常。

下面是except语句的基本格式:

try:
    # 尝试执行一段代码
except Exception as e:
    # 出现异常时执行的代码,e为异常对象

其中,Exception是一个包含所有异常的基类,也可以指定其他具体的异常类,如SyntaxErrorTypeError等。

else

else语句用来处理try语句中没有出现异常时的代码块,它跟在except语句的后面。

下面是else语句的基本格式:

try:
    # 尝试执行一段代码
except Exception as e:
    # 出现异常时执行的代码
else:
    # 代码块中没有出现异常时执行的代码
finally

finally语句无论try语句中是否出现异常,都会执行其中的代码块。通常用来释放资源、清理工作等。

下面是finally语句的基本格式:

try:
    # 尝试执行一段代码
except Exception as e:
    # 出现异常时执行的代码
else:
    # 代码块中没有出现异常时执行的代码
finally:
    # 不管是否出现异常,都会执行的代码
代码示例

下面是一个简单的代码示例,用于演示tryexceptelsefinally的使用:

try:
    num1 = int(input("请输入一个整数:"))
    num2 = int(input("请输入另一个整数:"))
    result = num1 / num2
except ValueError:
    print("输入的不是整数!")
except ZeroDivisionError:
    print("除数不能为0!")
else:
    print("结果为:%.2f" % result)
finally:
    print("程序结束!")

在这个程序中,先让用户输入两个整数,然后尝试计算它们的商。如果输入的不是整数,则捕获ValueError类型的异常,并输出错误信息;如果除数为0,则捕获ZeroDivisionError类型的异常,并输出错误信息;如果没有出现异常,则输出计算结果。最后,不管是否出现异常,都会输出“程序结束!”。