概念:在编程中,异常是指在程序执行期间发生的错误或异常情况。当出现异常时,程序会停止正常执行,并尝试查找相应的异常处理机制。
异常处理:Python提供了一套异常处理机制,让我们能够优雅地处理和响应异常情况。异常处理可以捕获和处理异常,使程序能够继续执行或采取适当的措施。
异常类型:Python内置了许多常见的异常类型,如:
SyntaxError
:语法错误,通常是由于错误的语法造成的。TypeError
:类型错误,当对不适合的数据类型执行操作时引发。NameError
:名称错误,尝试访问未定义的变量或函数时引发。ValueError
:值错误,当一个对象具有正确的类型,但包含一个不合适的值时引发。FileNotFoundError
:文件未找到错误,尝试打开不存在的文件时引发。try-except
语句:try-except
语句是Python中用于捕获和处理异常的关键字。通过使用try
块来执行可能引发异常的代码,并在except
块中处理特定类型的异常。
try:
# 可能引发异常的代码块
# ...
except ExceptionType:
# 处理特定类型的异常
# ...
当使用try-except
语句时,可以编写以下示例代码来演示异常处理的过程:
try:
num1 = int(input("请输入一个整数: "))
num2 = int(input("请输入另一个整数: "))
result = num1 / num2
print("结果:", result)
except ValueError:
print("输入无效!请输入一个有效的整数。")
except ZeroDivisionError:
print("除数不能为零!请重新输入另一个非零的整数。")
except Exception as e:
print("发生了一个异常:", e)
finally:
print("异常处理完成。")
在上面的代码中,我们尝试获取用户输入的两个整数并计算它们的商。然后,我们使用try
关键字将可能引发异常的代码放在一个代码块中。如果在执行num1 / num2
时出现异常,程序将跳转到相应的except
块,根据异常类型执行相应的代码。在这个例子中,我们使用了两个except
块来处理可能的ValueError
(输入无效)和ZeroDivisionError
(除数为零)异常。如果出现其他未处理的异常,我们使用一个通用的except
块来捕获并打印异常信息。最后,无论是否发生异常,finally
块中的代码都会被执行。
finally
子句:除了try-except
语句,Python还提供了一个可选的finally
子句,用于指定无论是否出现异常都需要执行的代码。
try:
# 可能引发异常的代码块
# ...
except ExceptionType:
# 处理特定类型的异常
# ...
finally:
# 无论是否出现异常都会执行的代码块
# ...
抛出异常:在某些情况下,我们也可以手动抛出异常,使用raise
关键字来引发特定类型的异常。
raise ExceptionType("Error message")