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

Python中的错误处理函数:异常处理try, except的使用和示例

发布时间:2023-11-24 06:23:42

在Python中,异常处理是一种处理程序错误的机制。当程序运行过程中发生错误时,程序可以捕获这些错误,进行处理而不中断程序的执行。异常处理使用了一对关键字:try和except。

try块是需要被监视的代码块,它包含可能会引发异常的代码。try块中出现的异常会在try块中被捕获。

except块是对异常的处理代码块,它定义了当try块中的异常被捕获后要执行的操作。一个try块可以跟随多个except块,捕获不同类型的异常。最后的except块是用来捕获未知异常的,它会捕获没有被前面的except块所捕获的异常。

以下是一个简单的异常处理示例:

try:
    num1 = int(input("请输入一个数字:"))
    num2 = int(input("请输入另一个数字:"))
    result = num1 / num2
    print("结果:",result)
except ValueError:
    print("请输入有效的数字!")
except ZeroDivisionError:
    print("除数不能为零!")
except:
    print("发生了一个未知的错误!")

上面的代码中,我们尝试获取用户输入的两个数字,并进行除法运算。如果用户没有输入有效的数字,程序会捕获ValueError异常;如果除数为零,程序会捕获ZeroDivisionError异常;如果发生了其他未知的错误,程序会捕获未知异常。在每个except块中,我们打印出相应的错误提示信息。

在处理异常时,我们可以使用as关键字将错误信息赋值给一个变量。下面是一个捕获异常并打印错误信息的示例:

try:
    age = int(input("请输入你的年龄:"))
    if age < 0:
        raise ValueError("年龄不能为负数!")
except ValueError as e:
    print(e)

在这个示例中,我们使用raise关键字引发了一个ValueError异常,并在异常中自定义了一个错误提示信息。在except块中,我们使用as关键字将错误信息赋值给变量e,并将其打印出来。

我们也可以使用else块来定义当try块中没有发生异常时要执行的操作,可以在这里进行一些额外的操作,例如关闭文件等。以下是一个使用else块的示例:

try:
    file = open("file.txt", "r")
    lines = file.readlines()
    for line in lines:
        print(line)
except FileNotFoundError:
    print("文件未找到!")
else:
    file.close()

在这个示例中,我们尝试打开一个文件并读取其中的内容。如果文件未找到,则会捕获FileNotFoundError异常,在except块中打印错误信息。如果文件成功打开并读取了内容,则会在else块中关闭文件。

异常处理在Python中是非常常见的技术,它可以帮助我们处理可能发生的错误,提高程序的健壮性和可靠性。在实际开发中,我们需要根据不同的场景和需求,选择合适的异常处理策略来处理异常。