下面我来详细讲解“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...
是非常灵活的异常处理机制,可以应用于各种不同的错误处理场景。但需要注意的是,过多的异常捕获会降低程序的性能,因此在使用时,需要根据实际情况选择合适的异常捕获范围。