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 星号(*) 还能这么用

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

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

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

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

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

彻底理解闭包实现原理

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

深入理解 python 虚拟机:原来虚拟机是这么实现闭包的

在本篇文章当中主要从虚拟机层面讨论函数闭包是如何实现的,所谓闭包就是将函数和环境存储在一起的记录。这里有三个重点一个是函数,一个是环境(简单说来就是程序当中变量),最后一个需要将两者组合在一起所形成的东西,才叫做闭包。

有关 python 切片的趣事

哈喽大家好,我是咸鱼 今天来讲一个我在实现 python 列表切片时遇到的趣事 在正式开始之前,我们先来了解一下**切片(slice)** 切片操作是访问序列(列表、字符串......)中元素的另一种方法,它可以访问一定范围内的元素,通过切片操作,可以生成一个新的序列 语法如下 ```python

Python实现随机森林RF并对比自变量的重要性

本文介绍在Python环境中,实现随机森林(Random Forest,RF)回归与各自变量重要性分析与排序的过程~

SICP:惰性求值、流和尾递归(Python实现)

在上一篇博客中,我们介绍了用Python对来实现一个Scheme求值器。然而,我们跳过了部分特殊形式(special forms)和基本过程(primitive procedures)实现的介绍,如特殊形式中的delay、cons-stream,基本过程中的force、streawn-car、stream-map等。事实上,以上特殊形式和基本过程都和惰性求值与流相关。这篇博客我们将介绍如何用Pyt

Python 实现 定义个矩形类,有长和宽两个实例属性,还有一个计算面积的方法

思路:'''1.定义矩形类2.定义属性 属性分:类属性和实例属性实例属性==》self.属性 》self是一个参数在一个方法中==》_init_方法 3.定义方法 def Area(self): s=self.length*self.width ''' class Square: def __ini