# a[4]
try:
'1'+ '2'
2 / 1
except TypeError as e:
print(e)
print('出错了')
except ZeroDivisionError as e:
print('除数不能为0')
except IndexError:
print('下标错误')
except KeyError:
print('找不到字典的key')
except FileNotFoundError:
print('文件打不开')
except Exception as e: # 代表捕获所有的错误信息 Exception是所有其他异常的基类
print('出异常了',e)
else: # try中没有出现异常,则 走到else中 如果 try中出现异常,则走except 不走else
print('没有出异常')
finally: # 不管是否 出现异常 都走finally: 一般 关闭文件 关闭数据库 会用到
print('aaa')
f = open('xxx','w')
try:
f.write()
except: # 包含所有异常 只要有异常 都走到这个分支
print('出问题走这块')
else:
print('不出异常 走这个分支')
finally:
f.close() # 最后都执行
import traceback
def is_price(s):
try:
f = float(s)
except Exception as e:
# traceback.print_exc() # 打印堆栈信息 很重要 很重要 很重要 不能只打印exception中信息,需要打印堆栈信息 方便问题定位
print('zijijiade .....',traceback.format_exc()) # 异常堆栈信息 写入日志文件中 这个很重要 很重要 很重要
return False
else:
if f>0:
return True
is_price('sdgsdf')
#调用堆栈信息