Python中的异常处理函数及使用方法
在编写程序的过程中,我们经常会遇到各种异常情况,例如输入错误、文件不存在、网络异常等等。这些异常情况可能会导致程序崩溃或结果不正确,因此需要用异常处理函数对其进行处理。Python中提供了多种异常处理函数及使用方法,下面我们将详细介绍它们的使用。
1. try-except语句
try-except语句是Python中最基本的异常处理机制。它的基本形式如下:
try:
# 可能会引发异常的代码
except 异常类型 as 异常对象:
# 异常处理代码
先执行try块中的代码,如果没有引发异常,就直接跳过except块,继续执行下面的代码。如果发生异常,就跳转到相应的except块,并执行其中的异常处理代码。其中,异常类型可以是Python内置的异常类,如TypeError、ValueError等等,也可以是自定义的异常类。异常对象是一个变量,用于存储引发的异常信息。
下面是一个例子,用try-except处理除以0异常:
try:
x = 1 / 0
except ZeroDivisionError as e:
print("除以0错误:", e)
执行结果:
除以0错误: division by zero
2. try-except-else语句
有时候我们只想在try块中成功执行代码时执行一些操作,而没有发生异常时,不需要执行任何操作,这时可以使用try-except-else语句。它的基本形式如下:
try:
# 可能会引发异常的代码
except 异常类型 as 异常对象:
# 异常处理代码
else:
# 没有发生异常情况下要执行的代码
其中,else块里面的代码只有在没有引发异常时才会执行。
下面是一个例子:
try:
x = int(input("请输入一个整数:"))
except ValueError as e:
print("输入格式错误:", e)
else:
print("输入的整数是:", x)
如果输入的是一个整数,会输出:
请输入一个整数:123 输入的整数是: 123
如果输入的是一个字符串,会输出:
请输入一个整数:abc 输入格式错误: invalid literal for int() with base 10: 'abc'
3. try-except-finally语句
有时候我们需要在发生异常或者不发生异常时都执行一些操作,这时可以使用try-except-finally语句。它的基本形式如下:
try:
# 可能会引发异常的代码
except 异常类型 as 异常对象:
# 异常处理代码
finally:
# 不管是否发生异常都要执行的代码
其中,finally块里的代码不管发生什么情况都会执行,例如释放资源、关闭文件等等。
下面是一个例子:
try:
f = open("test.txt", "r")
print(f.read())
except FileNotFoundError as e:
print("文件不存在:", e)
finally:
if f:
f.close()
如果文件存在,会输出文件的内容;如果文件不存在,会输出错误信息;无论如何都会调用f.close()关闭文件。
4. raise语句
raise语句可以手动引发异常。它的基本形式如下:
raise 异常类型(异常信息)
其中,异常类型可以是Python内置的异常类,如TypeError、ValueError等等,也可以是自定义的异常类。异常信息是一个字符串,用于描述引发的异常情况。
下面是一个例子,用raise语句引发异常:
def divide(x, y):
if y == 0:
raise ValueError("分母不能为0")
else:
return x / y
try:
x = divide(10, 0)
except ValueError as e:
print("发生异常:", e)
else:
print("结果是:", x)
执行结果:
发生异常: 分母不能为0
5. assert语句
assert语句用于判断一个条件是否成立,如果不成立就引发AssertionError异常。它的基本形式如下:
assert 条件表达式, 异常信息
其中,条件表达式是一个bool类型的值或者可以转换成bool类型的值,如果为False就会引发AssertionError异常。异常信息是一个字符串,用于描述断言失败的原因。
下面是一个例子,用assert语句判断输入的数字是否为正数,并引发异常:
num = int(input("请输入一个正数:"))
assert num >= 0, "输入的数字不是正数"
print("输入的数字是:", num)
如果输入的数字是负数,会引发AssertionError异常,输出错误信息;如果输入的数字是正数,会输出数字本身。
以上就是Python中常用的异常处理函数及使用方法。在编写程序中,要充分预料到各种可能的异常情况,并用相应的异常处理机制进行处理,保证程序的稳定性和正确性。
