异常处理
- 如果没有异常处理,当程序遇到错误时,将会崩溃,终止运行
- 异常处理指的是,在代码部分,考虑到程序可能会出现的错误,在代码中捕获
出现的错误,并给出解决方案(补救代码) - 语法
try:
有可能发生异常的语句
except 异常1:
补救代码
except (异常2, 异常3):
补救代码
else:
不发生异常才执行的语句
finally:
不管异常是否发生都要执行的语句
try:
n = int(input('数字: '))
result = 100 / n
except (ValueError, ZeroDivisionError) as e: #将错误信息赋值给变量
print('只接受非0数字', e) #输出错误信息
except (KeyboardInterrupt, EOFError) as e:
print('bye', e)
exit(0) #终止程序运行,returncode为0
else:
print(result)
finally:
print('Done')
触发异常raise
def get_info(name, age):
if not 0 < age <= 120:
raise ValueError('年龄超出范围(1-120)')
print('%s is %s years old' % (name, age))
if __name__ == '__main__':
get_info('dc', 200)
断言异常assert
def get_info2(name, age):
assert 0 < age <= 120, '年龄超出范围(1-120)'
print('%s is %s years old' % (name, age))
if __name__ == '__main__':
get_info2('plj', 188)