python实现在函数中捕获某个异常,然后将异常的具体信息写入error.txt文件中;
在程序开发中,如果对某些代码的执行不能确定(程序语法完全正确)
可以增加try来捕获异常
try这个关键字来捕获异常
try:尝试执行的代码
except:出现错误的处理
def func():
try:
print(a)
except NameError as e1:
with open('error.txt','w') as f:
f.write(str(e1))
func()

完善写法:在函数中捕获某个异常,然后将异常的具体信息写入error1.txt文件中
try:
# 可能出错的地方
num=int(input('请输入一个整数:'))
result1=8/num
print(result1)
except ValueError as e1:
print('输入的不是合法的整数')
with open('error1.txt', 'w') as f:
f.write(str(e1))
except ZeroDivisionError as e2:
print('除数不为0')
with open('error2.txt', 'w') as f:
f.write(str(e2))
except Exception as e:
print('未知错误 %s' % (r))
finally:
# 无论是否有异常都会执行的代码
print('程序结束.....')
代码截图:

error.1.txt

扩展学习:
Python之异常(try的用法)
1.练习
try:
# 不能确定正确执行的代码
num = int(input('请输入一个数字:'))
except:
print('请输入正确的整数')
print('*' * 10)

2. 提示用户输入一个整数,并使用8来除以用户输入的整数
try:
# 可能出错的地方 num = int(input('请输入一个整数:')) result = 8 /num print(result)
# 抛出异常 except ZeroDivisionError: print('0不能做除数') except ValueError: print('输入的值不是合法的整数') except Exception as r: print('未知错误 %s' %(r)) finally: # 无论是否有异常,都会执行的代码 print('--------------')



3.异常的传递
def demo1():
return int(input('请输入整数:'))
def demo2():
return demo1()
# 一级一级的去找,最终会将异常传递到主函数里
try:
print(demo2())
except Exception as r:
print('未知错误 %s' %r)
代码截图:

4.补充完善上述 2,增加func()方法、while True循环当达到满足的数据程序结束 ,如果不满足继续输入....
def func():
while True: # 无限循环
try:
a=int(input('请输入一个整数:'))
# print('success')
result1=6/a
print(result1)
print('程序结束....')
break # 输入正确的整数结束循环
except ZeroDivisionError as e1:
print('除数不为0!:'+str(e1))
except ValueError as e2:
print('输入的非整数!:'+str(e2))
finally:
print('......................................')
func()

相关链接:https://blog.csdn.net/weixin_44828950/article/details/91471459

浙公网安备 33010602011771号