当前位置: 首页 > web >正文

【python机器学习】Day 25 异常处理

知识点:
  1. 异常处理机制
  2. debug过程中的各类报错
  3. try-except机制
  4. try-except-else-finally机制

        在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深对代码和流程的理解。

        借助ai写代码的时候,经常会遇到try-except的异常处理模块,这是因为大部分大模型在后训练阶段都是经过强化学习训练的,为了确保结果的正确运行,只有采取 try-except的异常处理模块才能提高模型运行成功的概率。

        日常写代码的时,大概率不会采取这些写法。

        Python的异常处理机制为程序提供了强大的容错能力。当程序在运行时遇到意外情况(即异常),程序不会直接崩溃,人们可以通过 try-except 优雅地处理这些错误,并可能继续执行后续逻辑(如果设计允许)或以可控的方式结束。

        当异常发生时,Python会创建一个异常对象 (exception object)(通常是 Exception 类的子类实例)。如果这段可能出错的代码位于 try 语句块中,程序流程会寻找并跳转到匹配的 except 语句块(如果存在)来处理这个异常。

        *except 除···之外  exception 除外*

1.try-except语句

try:#语句块1
except 异常值类型:#语句块2

2.except支持多个except语句

try:#语句块1
except异常值类型1:#语句块2
except 异常值类型2:#语句块3...
except 异常值类型n:#语句块n+1except:#语句块n+2

        从第1 到 n 个except语句后,都指定了异常类型,说明这些except所包含的语句只处理这些类型的异常,最后一个except语句没有指定异常类型,表示这个except所包含的语句块可以除列举之外的,其他类型异常

3.try-except-else-finally

try:#语句块1
except异常值类型1:#语句块2
else:#语句块3finally:#语句块4

        当try语句块1正常执行结束,且没有发生异常时,执行else中的语句块3

        finally语句块,无论try语句块1中是否发生异常,语句块4都会执行

4.异常类型

###SyntaxError (语法错误):代码不符合 Python 的语法规则

### NameError (名称错误):使用一个未被定义的变量、函数或对象的名称。

### TypeError (类型错误): 对一个不支持该操作的数据类型,执行了某个操作或函数。

### ValueError (值错误): 函数接收到的参数类型正确,但其值不是函数所需参数类型或无效。

### IndexError (索引错误): 访问序列(如列表、元组、字符串)中一个不存在的索引。

### KeyError (键错误): 访问字典中一个不存在的键。

### AttributeError (属性错误): 访问一个对象没有的属性或方法。

### ZeroDivisionError (除零错误): 将一个数字除以零(0作为被除数)

### FileNotFoundError (文件未找到错误): 打开一个不存在的文件(通常是在读模式下),或者路径不正确。

###  ModuleNotFoundError (导入错误):导入一个不存在的模块,或者模块存在但其中的特定名称找不到, Python 的模块加载器找不到这个模块。去安装库即可,如果是自定义的模块,配置好对应的路径

        当代码出现这类错误时,程序会立即停止执行,并打印出一个 “traceback”(回溯信息),这个信息非常重要,它会告诉你:

1. 错误类型 (e.g., NameError, TypeError)

2. 错误发生的文件名和行号

3. 导致错误的那行代码

4. 错误的简要描述

5.说明

        try-except异常只用来检测极少发生的情况,例如:检测用户输入的合规性,文件是否打开成功等。对于索引字符串超过范围应该在程序中采用 if 语句直接判断,而避免通过异常处理来应对这种可能发生的“错误”

        面向商业应用的软件产品,稳定性和可靠性是最重要的衡量指标之一,这类软件也不会滥用try-except语句。因为try-except语句会影响代码的可读性,增加代码维护难度,因此只在关键地方采用try-except语句处理可能发生的异常。

        更多的使用场景需要自己探索积累

http://www.xdnf.cn/news/6287.html

相关文章:

  • 吴恩达机器学习笔记:多变量梯度下降
  • Permission Denied Error on Port 6277 When Starting MCP
  • 彻底解决QT5 中文编译不过问题
  • HCIP-Datacom Core Technology V1.0_1认识网络设备
  • 【unity游戏开发——编辑器扩展】EditorWindow自定义unity窗口拓展
  • AI-02a5a6.神经网络-与学习相关的技巧-批量归一化
  • Spring Boot拦截器详解:原理、实现与应用场景
  • centos7忘记root密码后使用单用户模式重置
  • 算法备案如何判断自己的产品是否具备舆论属性
  • LeetCode100.5 盛最多水的容器
  • Linux系统之----基础IO
  • 亚马逊电商广告革命:当AI推荐沦为红海陷阱,中国卖家如何破局?
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月14日第77弹
  • 最短路与拓扑(2)
  • vim启动的时候,执行gg
  • 现场维护三重四极杆质谱系统和四极杆清洗方法,确保所有目标化合物的可靠性检测
  • 牛顿均差知识
  • 写作--简单句基础练习
  • AI时代的弯道超车之第九章:AI如何改变传统教育模式
  • C PRIMER PLUS——第10节:结构体、共用(同)体/联合体
  • 字符串检索算法:KMP和Trie树
  • React学习———useEffect和useLayoutEffect
  • 数据防泄密安全:企业稳健发展的守护盾
  • 安卓开饭-ScrollView内嵌套了多个RecyclerView,只想与其中一个RecyclerView有联动
  • Kite AI 自动机器人部署教程
  • 使用深度学习预训练模型检测物体
  • MQTT 在Spring Boot 中的使用
  • 第二章 变量和运算符
  • C++取时间戳窗口
  • 在线黑白图像转换:简单却强大的视觉表达工具