Python的异常处理案例——网购平台交易案例

2024-01-10 10:36

本文主要是介绍Python的异常处理案例——网购平台交易案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需求

假设有多条交易信息,写个raise抛出异常,try…except 负责梳理出正常数据有哪些和非正常数据有哪些

解决

使用 raise 抛出异常并使用 try-except 梳理出正常数据和非正常数据:

class InvalidTransactionException(Exception):def __init__(self, message):self.message = messagedef process_transactions(transactions):normal_transactions = []abnormal_transactions = []for transaction in transactions:try:if transaction["amount"] < 0 or transaction["amount"] > 100000:raise InvalidTransactionException("交易金额不合法")elif len(transaction["description"]) > 100:raise InvalidTransactionException("交易描述过长")else:normal_transactions.append(transaction)except InvalidTransactionException as e:transaction["error_message"] = e.messageabnormal_transactions.append(transaction)return normal_transactions, abnormal_transactionstransactions = [{"id": 1, "amount": 100, "description": "购物"},{"id": 2, "amount": 200000, "description": "买车"},{"id": 3, "amount": -50, "description": "退款"},{"id": 4, "amount": 500, "description": "购物"*100},{"id": 5, "amount": 1000, "description": "旅游"},
]normal_transactions, abnormal_transactions = process_transactions(transactions)print("正常交易信息:")
for transaction in normal_transactions:print(transaction)print("非正常交易信息:")
for transaction in abnormal_transactions:print(transaction)

在上述代码中,我们定义了一个自定义异常类型 InvalidTransactionException,用于表示交易信息不合法的异常。

在函数 process_transactions 中,我们遍历交易信息列表,并使用 if 语句检查每个交易信息。如果发现交易金额不合法或交易描述过长,则使用 raise 抛出 InvalidTransactionException 异常;否则,将其视为正常交易信息。

except 块中,我们捕获到 InvalidTransactionException 异常,并将错误信息添加到交易信息字典中的 error_message 键中。同时,将非正常交易信息添加到列表 abnormal_transactions 中。

最后,函数返回正常交易信息列表 normal_transactions 和非正常交易信息列表 abnormal_transactions

在主程序中,我们定义了一个交易信息列表 transactions,然后调用 process_transactions 函数处理信息。最后,打印出正常交易信息和非正常交易信息。

更直观的例子来体现异常处理

使用 raise 抛出异常并使用 try-except 梳理出正常数据和非正常数据:

class InvalidDataException(Exception):passdef process_data(data):normal_data = []abnormal_data = []for item in data:try:if item < 0:raise InvalidDataException("数据小于零")else:normal_data.append(item)except InvalidDataException:abnormal_data.append(item)return normal_data, abnormal_datadata = [1, 2, -3, 4, 5, -6, 7, 8, 9, -10]
normal_data, abnormal_data = process_data(data)print("正常数据:", normal_data)
print("非正常数据:", abnormal_data)

在上述代码中,我们定义了一个自定义异常类型 InvalidDataException,用于表示数据不合法的异常。

在函数 process_data 中,我们遍历数据列表,并使用 if 语句检查每个数据项。如果发现数据小于零,则使用 raise 抛出 InvalidDataException 异常;否则,将其视为正常数据。

except 块中,我们捕获到 InvalidDataException 异常,并将非正常数据添加到列表 abnormal_data 中。

最后,函数返回正常数据列表 normal_data 和非正常数据列表 abnormal_data

在主程序中,我们定义了一个数据列表 data,然后调用 process_data 函数处理数据。最后,打印出正常数据和非正常数据。

这篇关于Python的异常处理案例——网购平台交易案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/590496

相关文章

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步