一、异常处理
1、错误类型
ERROR异常:系统种的错误,发生的原因可能是系统崩溃,内存空间不足,建议让程序终止
Exception异常:表示程序可以处理的异常,可以捕获且可能恢复。这类问题可以处理。
2、错误提醒
可能的错误:
AttributeError .lOError . ImportError . IndexError、SyntaxError、TypeError、ValueError、KeyError、NameError。
常见的错误如下:
. IndentationError:缩进错误
. KeyboardInterrupt: Ctrl+C被按下
. UnboundLocalError :有同名的全局变量
3、举例
1、print(a)
NameError 名字错误,没有这个参数
2、print(10/0)
ZeroDivisionError: division by zero 除数不能为0
3、with open('hello.txt') as f:
pass
FileNotFoundError 文件错误,没有这个文件
二、异常处理机制
try:尝试去运行的程序
except:try出问题了运行的代码(可以出现多个)
else:try没有问题运行的程序
finally:无论什么情况都会运行的代码
举例
execpt是进行多选一的
try: 尝试运行
a=1
print(b)
except NameError as name_error: 如果名字错误则
print('name_error')
except KeyError as key_error: 如果关键字错误则
print('key_error')
except Exception as all_error: 如果有错误则
print('all_error')
finally: 最后统一执行
print('结束')
三、触发异常
1、raise抛出异常
age = int(input('age:'))
if 0<age<150:
print(age)
else:
# 抛出异常
raise ValueError("年龄必须在0~150之间")
#结果
输入100
ValueError: 年龄必须在0~150之间
2、自定义异常
通过自定义异常
# 自定义的异常
class AgeError(ValueError): 自定义错误模块:AgeError,其属于ValueError类
pass
age = int(input('age:'))
if 0<age<150:
print(age)
else:
# 抛出异常
raise AgeError("年龄必须在0~150之间")
#结果
输入1000
AgeError: 年龄必须在0~150之间
``