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

【python】异常捕获和处理

思考

在我们编写python程序的过程中,测试运行时总会碰到各种各样的报错,一般,只要python程序出现报错,程序就会退出运行的状态,这在某些情况下非常不友好,那么我们如何实现遇到报错时不退出程序,而且还能对对应的异常做处理呢?

#如果没有test.txt这文件,程序就会报错退出,导致后续代码无法被执行到
print("start....")
fp=open("test.txt")
print("end...")

在这里插入图片描述

异常捕获

异常捕获的最重要的两个目的:

  1. 遇到异常不退出
  2. 对异常做特殊处理
# -*- coding: UTF-8 -*-
import json

#NameError
#print(a)

#keyError
# d1 = {"a":1}
# print(d1["b"])

#indexError
# lst=[1,2,3]
# print(lst[4])

#断言异常  代码逻辑  测试
# num1=int(input("please enter num1:"))
# num2=int(input("please enter num2:"))
# assert num1 > num2


def add(a,b):
    return abs(a)+abs(b)

#单元测试用例
#在python有test库专门做测试逻辑,但是简单的测试可以用断言去做assert
assert add(-1,2) == 3


#异常捕获
try:
    print("json begin...")
    # int("ABC")
    # 1/0
    # d1=json.loads("abc")
    print("json after...")
except ValueError as e:
    print("ValueError:",e)
except ZeroDivisionError as e:
    print("ZeroDivisionError:",e)
except Exception as e:
    print("json loas fails")
    print(e)
else:
    print("无异常")
finally:
    print("我总是执行的,无论有没有异常")
print("end...")

#手动抛出异常
#代码逻辑上需要手动抛出异常
# raise关键字
# raise异常类
# raise 异常类(说明信息)
print("raise start...")
raise RuntimeError("运行时异常")
print("raise end....")

相关文章:

  • nats jetstream 测试和客户端分析
  • vue3框架的响应式依赖追踪机制
  • C#变量与变量作用域详解
  • Android源码编译命令详解
  • DeepSeek与Manus:AI技术双星如何重构IT生产力格局
  • 作业-三层神经网络拟合任意函数、手写数字识别、室内定位
  • 【论文阅读】VAD: Vectorized Scene Representation for Efficient Autonomous Driving
  • STM32第一天建立工程
  • 云计算:虚拟化、容器化与云存储技术详解
  • 字节跳动C++客户端开发实习生内推-抖音基础技术
  • 数据库语句
  • leetcode day27 455+376
  • 中级网络工程师面试题参考示例(5)
  • Leetcode 刷题记录 06 —— 矩阵
  • Python 高级编程与实战:构建数据可视化应用
  • yolov5 onnx的部署文件(主要是onnx文件的使用)
  • AutoGen学习笔记系列(九)Advanced - Selector Group Chat
  • PawSQL for MSSQL:PawSQL 支持 SQL Server 的SQL优化、SQL审核、性能巡检
  • 【redis】type命令和定时器的两种实现方式(优先级队列、时间轮)
  • elasticsearch是哪家的
  • 三只松鼠创始人:要做全品类自有品牌零售商,不被嘲笑的梦想不值得被实现
  • “美诚月饼”佛山生产公司已注销,涉小杨哥带货“香港传统品牌”产地争议事件
  • 央媒:安徽凤阳鼓楼坍塌楼宇部分非文物,系违规复建的“假古董”
  • 上影节官方海报公布:电影之城,每一帧都是生活
  • 首付款12.5亿美元!三生制药与辉瑞就国产双抗达成合作协议
  • “大国重器”、新型反隐身雷达……世界雷达展全面展示尖端装备