捕获“间接”异常的一种好方法是使用try-except语句来捕获可能引发异常的代码块,然后在except语句中处理该异常或者再次抛出异常。
以下是一个示例代码,演示如何捕获“间接”异常并处理它:
def divide_numbers(a, b):
try:
result = a / b
return result
except ZeroDivisionError:
print("Error: 除数不能为零")
return None
except Exception as e:
print(f"Error: 发生了其他异常 - {e}")
return None
def main():
num1 = 10
num2 = 0
result = divide_numbers(num1, num2)
if result is not None:
print(f"结果为: {result}")
if __name__ == "__main__":
main()
在上面的代码中,divide_numbers
函数尝试将a
除以b
,如果除数为零,将会引发ZeroDivisionError
异常。我们使用try-except
语句来捕获该异常,并在except语句中打印错误消息。如果发生其他异常,我们也捕获并打印错误消息。
在main
函数中,我们调用divide_numbers
函数,并检查返回值是否为None
。如果不是None
,则打印结果。
这种方法可以帮助我们捕获“间接”异常,并在出现异常时进行适当的处理,以避免程序崩溃。