欢迎访问宙启技术站
智能推送

Python中的常用错误处理函数:避免代码运行出错

发布时间:2023-05-24 19:04:03

在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中常用的错误处理函数,使用这些函数可以大大提高代码的健壮性和可维护性。