python中的异常处理
异常处理是编程中的一种机制,用于处理程序运行时发生的错误。Python 使用 try
和 except
块来处理这些异常。下面是一段简单的有关异常处理的代码
input_str = input('输入数字')
# 输入数字程序正常执行,输入字母会报错
try:
input_value = int(input_str)
except:
print('发现异常')
else:
print(input_value)
分析代码可以得知,当我们输入数字的时候input_value = int(input_str)可以正常执行,也就是我们想要的结果。但是当我们输入字母,符号的时候int()函数会出错,这时候代码会报错不会继续进行了,这不是我们想看到的。众所周知用户在输入的时候可能会出现别的操作,这种情况没法避免,这时候就到了python中异常处理模块起作用了
try: 可能会出错的代码,也就是input_value = int(input_str)。 except: 可能会发生的错误。else: 如果except没有执行就执行.是不是跟while True:,break,else:很像。
下面是一些常见的异常:
1. Exception
描述:这是所有内置异常的基类。几乎所有的异常都继承自 Exception。
用法:通常不直接使用,而是作为捕获所有异常的通用方式。
2. TypeError
描述:当操作或函数接收到一个与期望类型不匹配的对象时引发。
示例:"string" + 1。
3. ValueError
描述:当操作或函数接收到一个具有正确类型但不适合的值时引发。
示例:int("string")。
4. IndexError
描述:当尝试访问序列(如列表、元组)中不存在的索引时引发。
示例:my_list[10],但列表长度小于 10。
5. KeyError
描述:当尝试访问字典中不存在的键时引发。
示例:my_dict['nonexistent_key']。
6. AttributeError
描述:当对象没有该属性时引发。
示例:some_object.nonexistent_method()。
7. ZeroDivisionError
描述:当除数为零时引发。
示例:10 / 0。
8. FileNotFoundError
描述:当试图打开一个不存在的文件时引发。
示例:open('nonexistent_file.txt')。
9. IOError
描述:通常与输入/输出操作相关的错误,如文件读取或写入错误。Python 3.x 中 IOError 已被合并到 OSError 中,但它仍然被广泛使用。
示例:无法写入文件因权限不足。
10. ImportError
描述:当尝试导入一个模块失败时引发。
示例:import nonexistent_module。
11. NameError
描述:当尝试访问一个不存在的变量时引发。
示例:使用未定义的变量。
12. RuntimeError
描述:当发生一个没有明确其他异常类型的错误时引发。通常是程序逻辑错误或运行时错误。
示例:自定义异常的使用场景。