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

异常处理及程序调试(Python)

一、常见异常

1.NameError —— 尝试访问一个没有声明的变量引发的错误

2.IndexError —— 索引超出序列范围引发的错误

3.IndentationError —— 缩进错误

4.ValueError —— 传入的值错误

5.KeyError —— 请求一个不存在的字典关键字引发的错误

6.IOError —— 输入输出错误(如要读取的文件不存在)

7.ImportError —— 当import语句无法找到模块或from无法在模块中找到相应的名称时引发的错误

8.AttributeError —— 尝试访问未知的对象属性引发的错误

9.TypeError —— 类型不合适引发的错误

10.MemoryError —— 内存不足

11.ZeroDivisionError —— 除数为0引发的错误

二、捕获并处理异常

(一)try...except

1.格式

try:

        block1

except Error :

        block2

2.参数说明

①block1:表示可能出现错误的代码块

②Error:捕获的异常名称

3.举例
try:
    b=int(input())
except ValueError:
    print("请重新输入阿拉伯数字!")
# 结果:
# 一
# 请重新输入阿拉伯数字!

(二)try...except...finally(block3是无论如何都要运行的语句)

1.格式

try:

        block1

 except error :

        block2

finally:

        block3

2.举例
try:
    b=int(input())
except ValueError:
    print("请重新输入阿拉伯数字!")
finally:
    print("该程序运行结束!")
# 结果:
#一
# 请重新输入阿拉伯数字!
# 该程序运行结束!

(三) 使用raise语句抛出异常

1.格式

raise Error (reason)

2.参数说明

①Error —— 异常名称

②reason —— 自述错误原因

3.举例
def f(a, b):
    if b == 0:
        raise ValueError("除数不能为零")
    return a / b

try:
    result = f(10, 0)
except ValueError as e:
    print(f"捕获异常: {e}")
# 结果:
# 捕获异常: 除数不能为零

三、assert语句调试程序 

1.格式

assert expression reason

2.参数说明

①expression:条件表达式,如为真,则什么都不做,为假,则抛出AssertionError异常

②reason:对判断条件描述

3.举例
def check_positive(number):
    assert number > 0, "数字必须为正数"
    print(f"数字 {number} 是正数")

check_positive(-5)  
# 结果:
# AssertionError: 数字必须为正数

相关文章:

  • 【Linux】系统进程管理
  • 【工具变量】A股上市公司企业创新活跃度数据集(2008-2023年)
  • 【论文笔记】RL在LLM中的落地方法
  • STM32——SPI通信
  • 怎么使用vue3实现一个优雅的不定高虚拟列表
  • mysql知识总结 基础篇
  • Light RPC:一款轻量高效的Java RPC框架实践指南
  • vscode Colipot 编程助手
  • 【CF】Day26——Teza Round 1 (Codeforces Round 1015, Div. 1 + Div. 2) CD
  • UE5学习笔记 FPS游戏制作44 统一UI大小 sizeBox
  • 关于OEC/OEC-turbo刷机问题的一些解决方法(2)——可能是终极解决方法了
  • day24学习Pandas库
  • k8s核心资源对象一(入门到精通)
  • 3D激光轮廓仪知识整理(待补充)
  • browser-use开源程序使 AI 代理可以访问网站,自动完成特定的指定任务,告诉您的计算机该做什么,它就会完成它。
  • 大模型论文:Improving Language Understanding by Generative Pre-Training
  • windterm终端软件使用
  • React-Markdown 组件底层实现原理详解
  • 服务异常挂掉问题:java invoked oom-killer
  • 数字三角形(dfs+动态规划)通过率未达100%
  • 左手免费午餐右手花开岭,邓飞14年公益之路的中国贡献
  • 美俄亥俄州北部发生火车撞人事故,致2人死亡、至少1人失踪
  • 水果预包装带来的环境成本谁来分担?
  • 2025吉林市马拉松开跑,用赛道绘制“博物馆之城”动感地图
  • 北斗系统全面进入11个国际组织的标准体系
  • 新华每日电讯:博物馆正以可亲可近替代“高冷范儿”