Python异常处理day8

1、异常处理机制

1.1内置异常

常见的内置异常,修改元组,输出变量为被定义,强转错误,将字符串转成整型,索引超范围,除数不能为0,引用未被定义的模组,字符串与整型加减,各种语法错误等等

1.2内置异常处理

异常处理是对异常进行捕获、抛出、处理,提高程序健壮性的机制。

算法的设计要求:正确性、可读性、健壮性、高效率、低存储

使用关键字try except finally else组合成不同的处理方式,其中try和except是核心。

(说白了就是把红色异常报错给显示成正常的输出提示)

try:a=3b=0c=a/b
except Exception as e:print(f'出现{e}错误')
else:print(c)
finally:print('我总是出现')

try:中输入正常函数,

except Exception as e:

        如果正常函数有误报错,则执行此段代码,print(f'出现{e}错误')将报错原因输出

else:

        如果函数正常不执行except Exception as e:则执行else

finally:

        此函数总是执行

except有多种用法:如果想检测多样的错误,

例如:

        try:

                函数

        except  Axxx错误:

                   print('A错误')

        except  Bxxx错误:

                   print('B错误')

        else:

                xxx

        或者  可以将except写成except(Axxxx,Bxxxx):

1.3  自定义异常

除了内置异常还有自定义异常,要引用到raise

raise可以抛出异常--内置异常或者自定义异常都可以

class myexception(BaseException):def __init__(self,n):self.n=ndef __str__(self):return self.n
try:raise myexception('错误错误')
except myexception as e:print(e)

上面先定义一个异常类,继承BaseException(这个异常类的顶层基类)然后初始化一下,接受参数赋值给n,再返回实例变量n,这样在异常的时候会打印该值

然后try:

  • raise myexception('错误错误') 语句会创建并抛出一个 myexception 异常对象,传入字符串 '错误错误' 作为错误信息。

  • 这个异常被触发并且抛出之后,程序的执行会跳转到 except 块中,等待异常的捕获。

然后except捕获到了myexception类型的异常,并将其赋值给变量e,然后在输出e,将这个异常类中的返回值打印出来

demo1

编写一个函数,接受一个数字 n 作为参数 要求: 如果 n 小于 0, 则抛出一个自定义的异常“NegativeNumberError”。

class NegativeNumberError(BufferError):def __init__(self,msg):self.msg=msgdef __str__(self):return self.msg
def fun1(a):if a<0:raise NegativeNumberError('数字小于0')else:return a
try:print(fun1(8))print(fun1(-3))
except NegativeNumberError as e:print(e)

编写一个函数,接受一个字符串 s 作为参数 要求: 如果 s 的长度小于 10, 则抛出一个自定义的异常“StringLengthError”。

class StringLengthError(BufferError):def __init__(self,msg):self.msg=msgdef __str__(self):return self.msg
def fun1(a):if len(a)<10:raise StringLengthError('长度小于10')else:return f'长度为{len(a)}'
try:print(fun1('dsdwfdwadfdfesfef'))print(fun1('ddfes'))
except StringLengthError as e:print(e)

1.5日志的简单应用demo2

在python中,记录日志使用logging库,日志的级别从高到低分别为:

  1. CRITICAL:系统崩溃级别的错误,必须立即处理
  2. ERROR:运行时的错误,可能导致程序无法正常运行
  3. WARNING:警告信息
  4. INFO:信息性消息,程序正常运行
  5. DEBUG:详细信息,通常在诊断问题时有用
import logging
# 设置日志的打印级别
logging.basicConfig(level=logging.DEBUG)
logging.critical('这是一个critical信息')
logging.error('这是一个error信息')
logging.warning('这是一个warning信息')
logging.info('这是一个info信息')
logging.debug('这是一个debug信息')
# 向指定的日志文件里去打印日志信息
import logging
logging.basicConfig(filename='./app.log')
logging.warning('这是一个warning信息')logging.basicConfig(filename='./app.log', level=logging.DEBUG, filemode='a',format='%(name)s - %(levelname)s - %(message)s')
logging.warning('这是一个warning信息')# %(name)s    日志记录器的名字
# %(levelname)s    日志级别
# %(asctime)s    时间
# %(message)s    消息本身

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/16265.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

FFmpeg 4.3 音视频-多路H265监控录放C++开发十三.2:avpacket中包含多个 NALU如何解析头部分析

前提&#xff1a; 注意的是&#xff1a;我们这里是从avframe转换成avpacket 后&#xff0c;从avpacket中查看NALU。 在实际开发中&#xff0c;我们有可能是从摄像头中拿到 RGB 或者 PCM&#xff0c;然后将pcm打包成avframe&#xff0c;然后将avframe转换成avpacket&#xff0…

软件测试之缺陷编写

软件测试之缺陷编写 1. 缺陷报告示例2. 缺陷的跟踪流程3. 提交缺陷注意事项 1. 缺陷报告示例 2. 缺陷的跟踪流程 发现bug后怎么办? 要确认bug的可复现. 3. 提交缺陷注意事项

建筑工程内部知识库:提升项目管理效率的关键

在建筑工程领域&#xff0c;项目管理的效率直接关系到项目的成本、进度和质量。随着信息技术的快速发展&#xff0c;内部知识库已成为提升项目管理效率的关键工具。本文将探讨如何通过内部知识库优化建筑工程项目管理&#xff0c;并提供一些实用的策略和建议。 一、内部知识库…

Vue前端开发之组件事件

在一个组件中&#xff0c;不仅可以定义属性&#xff0c;还能定义事件&#xff0c;同时&#xff0c;在定义的事件中&#xff0c;还可以传递事件参数&#xff0c;校验参数&#xff0c;组件中定义的事件&#xff0c;可以被调用此组件的父级组件监听&#xff0c;当触发子级组件的事…

Springboot 整合 Java DL4J 打造金融风险评估系统

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

【Unity】ScriptableObject的应用:利用配方合成新物体

前一篇已经使用ScriptableObject(SO)类配置可放置物体&#xff0c;本篇探索更多的SO类应用场景。 需求分析 将若干指定物体放在工作台上&#xff0c;可以生成新的物体。 成果展示 Scene部分 准备工作台&#xff0c;放在工作台上的物体全部放在指定PlacedObjects空物体下。 …

实践1:创建 POST、GET、DELETE 请求

好的&#xff0c;以下是关于HTTP请求的详细内容&#xff1a; 一、HTTP请求 HTTP&#xff08;HyperText Transfer Protocol&#xff09;是用于在Web浏览器和服务器之间传输数据的协议。它是Web的基础&#xff0c;也是RESTful API通信的核心。HTTP请求由客户端&#xff08;如浏…

每日小题--买股票的最佳时机

目录 题目 分析 解题思路 完整代码 题目 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润…

企业一站式管理系统odoo的研究——PLM插件的搭建

大纲 1. 环境准备1.1 安装操作系统1.2 更新操作系统1.3 配置用户组和用户1.3.1 创建用户组 odoo1.3.2. 创建用户 odoo1.3.3. 设置用户 odoo 的密码1.3.4. 验证用户和组1.3.5. 将用户 odoo 添加到添加sudo组&#xff1a;1.3.6. 切到odoo用户 2. 安装 Odoo1. 安装依赖项目2.2. 安…

泰矽微重磅发布超高集成度车规触控芯片TCAE10

市场背景 智能按键和智能表面作为汽车智能化的重要部分&#xff0c;目前正处于快速发展阶段&#xff0c;电容式触摸按键凭借其操作便利性与小体积的优势&#xff0c;在汽车内饰表面的应用越来越广泛。对于空调控制面板、档位控制器、座椅扶手、门饰板、车顶控制器等多路开关的…

10月回顾 | Apache SeaTunnel社区动态与进展一览

各位热爱 Apache SeaTunnel 的小伙伴们&#xff0c;社区10月份月报来啦&#xff0c;请查收&#xff01; 这里将记录Apache SeaTunne社区每月动态和进展&#xff0c;欢迎关注。 月度Merge之星 感谢以下小伙伴上个月为 Apache SeaTunnel 所做的精彩贡献&#xff08;排名不分先…

__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined

VUE_PROD_HYDRATION_MISMATCH_DETAILS 未明确定义。您正在运行 Vue 的 esm-bundler 构建&#xff0c;它期望这些编译时功能标志通过捆绑器配置全局注入&#xff0c;以便在生产捆绑包中获得更好的tree-shaking优化。 Vue.js应用程序正在使用ESM&#xff08;ECMAScript模块&#…

浪潮信息“源”Embedding模型登顶MTEB榜单第一名

在自然语言处理&#xff08;NLP&#xff09;和机器学习领域&#xff0c;Embedding模型是将文本数据转换为高维向量表示的核心技术&#xff0c;直接影响NLP任务&#xff08;如文本分类、情感分析等&#xff09;的效果&#xff0c;对于提升模型性能和深入理解文本语义具有至关重要…

一文6个步骤带你实现接口测试入门

软件测试资料领取&#xff1a;[内部资源] 想拿年薪40W的软件测试人员&#xff0c;这份资料必须领取~ 软件测试面试刷题工具&#xff1a;软件测试面试刷题【800道面试题答案免费刷】 一、接口测试概述 1 什么是接口测试&#xff1a; 接口测试是测试系统组件间交互的一种测试…

成人失禁护理领导品牌可靠亮相广州SIC老博会 助力推动养老产业高质量发展

2024年11月15日至17日&#xff0c;第十届中国国际老龄产业博览会&#xff08;SIC老博会&#xff09;在广州保利世贸博览馆开幕。可靠股份&#xff08;股票代码&#xff1a;301009&#xff09;携成人失禁护理系列等经典及战略产品受邀亮相本次展会&#xff0c;全方位展示企业在产…

【macOS】Mac安装consola字体至系统和PyCharm的最简单教程

博主本人是Mac小白&#xff0c;刚使用Air没多久&#xff0c;今天coding的时候发现PyCharm的字体怎么看怎么不舒服&#xff0c;一对比才发现跟win里的有较大差别&#xff0c;查看Mac的PyCharm字体原来是默认的JetBrains Mono&#xff1a; 但由于PyCharm可以同步账号的所有设置再…

mysql delete后通过日志恢复数据

1.打开navicat查看删除时间 2.查看日志功能是否打开 show variables like %log_bin%;3. 查看日志文件所在目录 show variables like %datadir%;4.用这个路径去找日志文件&#xff0c;名字里带bin&#xff0c;最后修改时间和你第一步找到删除时间一样(如果之后有过其它增删改…

react-redux useSelector钩子 学习样例 + 详细解析

&#xff08;一&#xff09;react-redux useSelector 学习样例 详细解析 创建一个新项目&#xff0c;将依赖正确安装&#xff1a; npx create-react-app my-redux-app cd my-redux-app# 安装 Redux 和 React-Redux npm install redux react-redux# 安装 ajv npm install ajv#…

小地图制作(一)

(1)素材准备 (2)小地图的显示

中国书法、孙溟㠭浅析“象形印”

孙溟㠭浅析“象形印” “象形印”又称之为“图案印”、“肖像印”。刻有图案印章的统称。 图画印自战国、汉、魏都有&#xff0c;象形印一般铸有人物、动物等图案&#xff0c;如&#xff1a;龙、虎、雀、凤、龟等都是吉祥的图案&#xff0c;有白文&#xff0c;也有朱文。取材…