python基础知识之try…except…的详细用法实例

  • Post category:Python

下面我来详细讲解“python基础知识之try…except…的详细用法实例”的完整攻略。

什么是try…except…

try...except... 是 Python 异常处理机制的核心之一。通常情况下,我们的程序是会出现各种各样的错误或异常的,如果我们不进行异常处理,程序就会崩溃并输出错误信息。而 try...except... 就是用来处理这些异常情况的关键。

try…except… 语法

try:
    # 要执行的代码块
except Exception as e:
    # 异常处理代码块

try 代码块中是我们要尝试执行的代码,如果代码执行出错或者出现异常,就会进入 except 代码块中,进行异常处理。

try…except…的用法实例

示例1:捕获异常

假设我们要打开一个不存在的文件,并读取其中的内容,那么肯定会出现文件不存在的异常情况。我们可以用 try...except... 来捕获这个异常,以便程序可以正常运行。

try:
    with open('non_exist_file.txt', 'r') as f:
        content = f.read()
except Exception as e:
    print(f"发生错误:{e}")

上面的代码中,我们用 with open 的方式打开一个名为 non_exist_file.txt 的文件,但该文件并不存在。在 try 代码块中,我们尝试读取这个文件的内容,但由于文件不存在,就会出现异常。这个异常会被捕获,并输出错误信息,程序不会因此崩溃。

示例2:自定义异常

有时候,我们也可以自定义一些异常,用来标识一些特殊的错误情况。

class InvalidInputError(Exception):
    def __init__(self, value):
        self.value = value

    def __str__(self):
        return f"输入有误:{self.value}"

try:
    age = int(input("请输入你的年龄:"))
    if age < 0 or age > 120:
        raise InvalidInputError(age)
except ValueError:
    print("输入不是数字")
except InvalidInputError as e:
    print(e)

上面的代码中,我们定义了一个名为 InvalidInputError 的自定义异常,在 try 代码块中,我们输入一个年龄数值,并判断其是否在 0 到 120 的范围内。如果年龄数值不在该范围内,就会抛出 InvalidInputError 异常,并输出错误信息。

总结

通过上面的示例,我们可以看出 try...except... 是非常灵活的异常处理机制,可以应用于各种不同的错误处理场景。但需要注意的是,过多的异常捕获会降低程序的性能,因此在使用时,需要根据实际情况选择合适的异常捕获范围。