import time
try:
# 如果你觉得代码可能出现问题, 那么放在try语句中, 只执行一次;
print(s) #可能NameError
except NameError as e: # 对于异常进行一个重命名;记录了异常的详细信息;
# 可能执行一次, 也可能不执行;
print('名称错误')
with open('except.log','w') as f: #把异常内容写入except.log文件
f.write('名称错误')
finally:
# 无论是否出现异常, 肯定会执行一次
print('处理结束')
输出:
名称错误
处理结束
并且会得到一个except.log文件
当没有错误时,except不执行
import time
try:
# print(s)
print('hello') # 没有错误,except不执行
except NameError as e:
print('名称错误')
with open('except.log','w') as f:
f.write('名称错误')
finally:
print('处理结束')
输出:
hello
处理结束
可以调整except.log文件记录格式显示时间错误内容等:
import time
try:
# print(s)
print('hello') # 没有错误,except不执行
except NameError as e:
print('名称错误')
with open('except.log','w') as f:
f.write(time.ctime()+' ') #打印时间
f.write(str(e)) # 打印错误详情
finally:
print('处理结束')
try语句中一旦出现问题, 后面的语句(try里面的)不执行。
import time
try:
# 如果你觉得代码可能出现问题, 那么放在try语句中, 只执行一次;
print('hello')
with open('/etc/aa') as f: # try语句中一旦出现问题, 后面的语句(try里面的)不执行
print(f.read()[:5])
print("文件读取结束")
li = [1, 2, 3, 4]
print(li[5])
print(s)
print("hello")
except (NameError, IndexError) as e: # 对于异常进行一个重命名;记录了异常的详细信息;
# 可能执行一次, 也可能不执行;
# print("名称错误")
with open("except.log", 'a+') as f:
f.write(time.ctime() + ' ' + str(e) + '\n')
finally:
# 无论是否出现异常, 肯定会执行一次,
print("处理结束")