python实现在函数中捕获某个异常,然后将异常的具体信息写入error.txt文件中;

python,现在,函数,捕获,某个,异常,然后,具体,信息,写入,error,txt,文件 · 浏览次数 : 27

小编点评

```python def func(): try: a = int(input("请输入一个整数:")) result1 = 6 / a print(result1) print("程序结束....") except ZeroDivisionError as e1: print("除数不为0!:" + str(e1)) except ValueError as e2: print("输入的非整数!:" + str(e2)) except Exception as e: print("未知错误 %s" % (r)) def demo1(): return int(input("请输入整数:")) def demo2(): return demo1() while True: try: a = int(input("请输入一个整数:")) result1 = 6 / a print(result1) print("程序结束....") break except ZeroDivisionError as e1: print("除数不为0!:" + str(e1)) except ValueError as e2: print("输入的非整数!:" + str(e2)) except Exception as e: print("未知错误 %s" % (r)) ``` **代码截图:** ``` -------------- 请输入一个整数:1 success 程序结束.... -------------- 请输入一个整数:2 input's value should be an integer! ************************************ 请输入一个整数:3 success 程序结束.... ``` **补充完善:** 1. 使用 `finally` 语句确保无论是否有异常,代码都会执行的代码,例如记录异常信息或打印信息。 2. 使用 `while True` 循环可以无限地执行代码直到满足条件。 3. 使用 `try/except/finally` 语句可以捕获多个异常类型。 4. 使用 `with` 语句可以自动打开和关闭文件,确保文件在操作完成后关闭。

正文

在程序开发中,如果对某些代码的执行不能确定(程序语法完全正确)

可以增加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 

 

 

与python实现在函数中捕获某个异常,然后将异常的具体信息写入error.txt文件中;相似的内容:

python实现在函数中捕获某个异常,然后将异常的具体信息写入error.txt文件中;

在程序开发中,如果对某些代码的执行不能确定(程序语法完全正确) 可以增加try来捕获异常 try这个关键字来捕获异常try:尝试执行的代码except:出现错误的处理 def func(): try: print(a) except NameError as e1: with open('error

Python模块 adorner 的使用示例

模块介绍 adorner 是一个现代轻量级的 Python 装饰器辅助模块。 目前该模块仅实现了 4 个类,对应着 4 个功能:制造装饰器、执行计时、函数缓存、捕获重试。 仓库地址:https://github.com/gupingan/adorner 安装 该模块可在上方仓库中的 Releases

python 星号(*) 还能这么用

哈喽大家好,我是咸鱼 今天跟大家介绍一下 python 当中星号(`*`)的一些用法 首先大家最常见的就是在 python 中 `*` 是乘法运算符,实现乘法 ```python sum = 5 * 5 # 25 ``` 除此之外,还有一种常见的用法就是 `*` 号操作符在函数中的用法 - 单星号(

< Python全景系列-9 > Python 装饰器:优雅地增强你的函数和类

装饰器在 Python 中扮演了重要的角色,这是一种精巧的语言特性,让我们能够修改或增强函数和类的行为,无需修改它们的源代码。这篇文章将深入探讨装饰器的所有相关主题,包括装饰器的基础知识、实现与使用、工作原理,以及通过实际例子学习装饰器的独特用法。

#Python实例 计算外卖配送距离(基于百度API接口)---第二篇

https://www.cnblogs.com/simone331/p/17218019.html 在上一篇中,我们计算了两点的距离(链接为上篇文章),但是具体业务中,往往会存在一次性计算多组,上百甚至上千的距离。 所以我们需要利用python函数,批量去处理和传参,批量计算距离。前面的操作去第一篇

《对线面试官》| 高频 Python 面试题 pt.1

**1.聊聊 python 中的值传递和引用传递吧** - 值传递: 值传递意味着在函数调用时,将实际参数的值复制一份传递给函数的形式参数 在函数内部,形式参数将作为局部变量使用,对形式参数的修改不会影响原始变量的值 - 引用传递 引用传递意味着在函数调用时,将实际参数的引用(内存地址)传递给函数的

Generator(生成器),入门初基,Coroutine(原生协程),登峰造极,Python3.10并发异步编程async底层实现

普遍意义上讲,生成器是一种特殊的迭代器,它可以在执行过程中暂停并在恢复执行时保留它的状态。而协程,则可以让一个函数在执行过程中暂停并在恢复执行时保留它的状态,在Python3.10中,原生协程的实现手段,就是生成器,或者说的更具体一些:协程就是一种特殊的生成器,而生成器,就是协程的入门心法。 协程底

Python的Lambda函数: 一把极简编程的瑞士军刀

Python中的`lambda`函数,或者叫匿名函数,是一个极其强大的工具。它以简洁、优雅的语法提供了创建函数的快速方式。在本篇文章中,我们将全方位地深入研究lambda函数的用法和特点,通过理论和实例相结合的方式,让你的Python编程技巧更上一层楼。

彻底理解闭包实现原理

前言 闭包对于一个长期写 Java 的开发者来说估计鲜有耳闻,我在写 Python 和 Go 之前也是没怎么了解,光这名字感觉就有点"神秘莫测",这篇文章的主要目的就是从编译器的角度来分析闭包,彻底搞懂闭包的实现原理。 函数一等公民 一门语言在实现闭包之前首先要具有的特性就是:First class

测试type和isinstance两个函数,那个速度更加的快

一、解决方案 通过装饰器实现二、相关知识点 isinstance()函数 1. isinstance()函数是python中的一个内置函数,作用:判断一个函数是否是一个已知类型,类似type()。 2. 语法:isinstance ( object , classinfo ) 参数: object: