Python中的常用错误处理函数:避免代码运行出错
在Python中,错误处理非常重要。任何的代码,尤其是比较大的项目,都很容易出现错误。而避免代码运行出错,就需要使用常用的错误处理函数。下面就来介绍一下Python中常用的错误处理函数。
1、try...except
try...except是Python中最常用的错误处理函数。这个函数可以捕捉异常。当程序执行try语句块时发生错误,就会跳转到except语句块中进行处理。这个函数有如下几种用法:
1)try...except...else
先执行try语句块,如果没有异常,则执行else语句块。如果有异常,则跳转到except语句块进行处理。
例如:
try:
print("Hello, world!")
except:
print("An error occurred!")
else:
print("No error occurred.")
输出结果如下:
Hello, world!
No error occurred.
2)try...except...finally
try...except...finally中的finally语句块无论如何都会执行。也就是说,不论try或except块中的代码是否出现异常,最后都会执行finally语句块。
例如:
try:
print(1/0)
except:
print("An error occurred!")
finally:
print("The 'try except' is finished.")
输出结果如下:
An error occurred!
The 'try except' is finished.
3)多个except
try语句块中可以有多个except语句块。每个except语句块对应一种特定的异常,如果try语句块中出现了这种异常,就会跳转到相应的except语句块进行处理。
例如:
try:
int("abc")
except ValueError:
print("Invalid value")
except ZeroDivisionError:
print("Divided by zero")
except:
print("Unknown error")
输出结果如下:
Invalid value
注意:如果有多个except语句块,只能执行其中的一个,如果多个except语句块都符合,就会执行 个匹配的语句块。
2、assert
assert是Python中另一个常用的错误处理函数。可以用它来测试一个条件是否为True,如果为False,就会引发AssertionError异常。
例如:
num = 10
assert num == 9, "num is not equal to 9"
输出结果如下:
AssertionError: num is not equal to 9
可以看到,由于num的值并不等于9,所以引发了AssertionError异常。
3、raise
raise用来引发异常。可以用它来自己定义一个异常类型。
例如:
def divide(num1, num2):
if num2 == 0:
raise ZeroDivisionError("The second parameter cannot be zero.")
return num1 / num2
print(divide(10, 0))
输出结果如下:
ZeroDivisionError: The second parameter cannot be zero.
raise语句可以自定义一个异常,并且可以加上异常描述。在此例子中,定义了ZeroDivisionError异常,并且给它一个描述。
4、with...as
with...as用于处理一些资源,比如文件读写的锁定和解锁。它非常适用于Python中的文件处理。当with语句执行完成之后,不论是正常结束还是抛出异常结束,都会自动释放资源,避免发生资源泄露的问题。
例如:
with open("test.txt", "w") as f:
f.write("Hello, world!")
上面的代码打开了一个文件写入了文本内容"Hello, world!",这样就不需要手动关闭文件了。
以上就是Python中常用的错误处理函数,使用这些函数可以大大提高代码的健壮性和可维护性。
