python异常处理
python异常处理
- 异常捕获
- 使用except捕获异常时,不但捕获指定类型的错误,还会捕获到其子类异常
- 可以跨越多层调用,即捕获到方法下调用的方法的异常
- 调用栈
- 错误堆栈: 记录错误,并通过logging模块配置可被打印到日志文件中
- 如果错误没有被捕获,它就会一直往上抛,最后被Python解释器捕获,打印一个错误信息,然后程序退出
捕获已知异常
s1 = input("请输入一个字符:")
try:
int(s1)
except IndexError as e:
print(e)
except KeyError as e:
print(e)
except ValueError as e:
print(e)捕获未知异常
s1 = input("请输入一个字符:")
try:
int(s1)
except Exception as e:
print(e)异常处理完整结构
try:
pass # 主代码块
except KeyError as e:
pass # 出现该异常时执行
else:
pass # 主代码块执行完,执行该块(若捕获到异常,则不执行该句)
finally:
pass # 无论异常与否,最终执行该块(不论try、except、else是否出现异常,该句都会执行)抛出异常
s1 = input("请输入一个字符:")
try:
if len(s1) != 1:
raise Exception(KeyError) # 抛出KeyError异常
except Exception as e: # 捕获异常
print(e)自定义异常
class MyException(Exception):
def __init__(self, code, msg):
self.error_code = code
self.error_msg = msg
def __str__(self):
return self.error_code, self.error_msg
try:
raise MyException(3000, ‘自定义异常‘)
except MyException as e:
print(e.error_code, e.error_msg) 相关推荐
kevinweijc 2020-08-18
kikaylee 2020-08-18
寻常白昼 2020-08-15
shunelly 2020-08-09
liangzhouqu 2020-07-28
JessePinkmen 2020-07-26
xiaoxiaoniaoer 2020-07-21
Lexan 2020-06-22
heimicms 2020-06-14
tianyafengxin 2020-06-08
lynjay 2020-06-06
cenylon 2020-06-04
lqxqust 2020-06-03
宿舍 2020-05-29
Wonder的学习 2020-05-11
明天你好 2020-05-09
阿艾辣悟叩德 2020-05-06
致终将努力的我们 2020-05-05