Python:
处理错误

如何操作:

# 基础的try-except块
try:
    # 可能出错的代码
    number = int(input("请输入一个数字:"))
except ValueError:
    # 处理错误
    print("那不是一个数字!")

# 指定多个异常
try:
    # 可能引发不同异常的代码
    result = 10 / int(input("请输入一个除数:"))
except ZeroDivisionError:
    print("哎呀!不能除以零。")
except ValueError:
    print("我需要一个数字,伙计。")

# 使用else和finally
try:
    number = int(input("请输入一个数字进行平方计算:"))
except ValueError:
    print("我说的是数字!")
else:
    # 没有发生错误
    print("你的数字平方是:", number**2)
finally:
    # 总是执行
    print("感谢你尝试这个!")

输入无效数字时第一个块的示例输出:

请输入一个数字:hello
那不是一个数字!

深入探讨

自编程诞生之初,错误处理就至关重要。早期的方法很原始,比如在每个可能出错的操作前检查条件。Python的try-except语法源于早期语言如C++和Java中的异常处理传统,简化了这一过程。

当你尝试执行一段代码,Python会监视是否有任何异常发生。如果弹出错误,except块会捕捉到它。你可以具体化要捕捉的异常,或者用一个空的except捕捉所有异常。然而,优先考虑具体化是更好的做法——它精确,而不是用一个大网抓所有的。

elsefinally是这个概念中的额外内容。如果try块没有错误,else块会执行。finally是可靠的伙伴,无论如何都会运行——想想清理操作。

有别的选择吗?当然有。有些语言使用返回代码而不是异常。你还可能遇到用于处理资源的with语句,或者在开发时用来检查条件的assertions。但当我们谈到扎实的错误处理策略,基于可读性和结构的try-catch模型突出表现。

另请参阅

以下是一些深入研究的好资源: