Python学习记录 异常处理

Python中的异常处理(个人学习记录) try:可能会抛出异常的代码except 异常类型:异常处理代码(报错后执行的代码)请输入一个整数:10请输入一个整数:0除数为0。 阅读详情

2022.08.23 DAY39

异常
  • 异常就是不正常,当python检测到一个错误时,解释器就无法继续执行下去了,反而出现了一些错误的提示,这就是所谓的异常。

  • 解决方案

    • 加条件 if-else 增加相关的容错处理

    • 异常处理方案

        try:
            可能出现问题的代码。
        except:
            如果出现问题,会执行改代码块。
      
  • 多个异常处理

      try:
          ---
      excepr 异常1:
          ---
      excepr 异常2:
          ---
      excepr 异常3:
          ---
    

代码示例:

a = input("请输入被除数:")
b = input("请输入除数:")

try:
    a = int(a)
    b = int(b)
    c = a / b
    print('商为:%g'%c)
except ValueError:
    print('数据类型有误')
except ZeroDivisionError:
    print('除数不能为0')
except Exception:
    print('其他异常')

运行结果:

请输入被除数:6
请输入除数:0
除数不能为0
try-except-else-finally
try:
    ---
except 异常 as 变量:
    ---
else:
    没有异常执行的代码
finally:
    最终一定要执行的代码

测试代码:

def test2():
    try:
        # 打开文件
        file = open('TestFile.txt', 'w', encoding='utf-8')
        print('文件打开成功')
        # 文件写入 write只能将字符串数据写入到文件
        file.write('Hello World...')
        # file.write([1, 2, 3])  # 报错
    except Exception as e:
        print(e.args)
    else:
        print('文件写入完毕')
    finally:
        # 文件关闭
        file.close()
        print('关闭文件,谢谢试用')

test2()
异常处理抛出自定义异常

测试代码:

# 抛出异常 raise 异常对象
# 定义一个异常类
class GenderException(Exception):
    def __init__(self):
        super().__init__()
        self.errMsg = '性别只能设置成男或者女'

class Student():
    def __init__(self, name, gender):
        self.name = name
        self.setGender(gender)

    #设置性别
    def setGender(self, gender):
        if gender == '男' or gender == '女':
            self.__gender = gender
        else:
            # 抛出异常 性别异常
            raise GenderException()

    def getGender(self):
        return self.__gender
    def showInfo(self):
        print("我叫:%s, 性别:%s"%(self.name, self.__gender))


if __name__ == '__main__':
    stu = Student('学生1', '男')
    try:
        stu.setGender('不男不女')
    except Exception as e:
        print(type(e))
        print(e.args)
        print(e.errMsg)
    stu.showInfo()
Python 0 基础学习记录——异常处理 阅读详情

相关推荐

SPSS中的数据分析—信度效度检验【1】

前一段时间跟大家分享了好几篇关于EXCEL方面的数据分析知识,不知道大家都掌握得怎么样了。今天咱们换个口味,给大家讲一下关于SPSS中的数据分析——信度效度检验。 现阶段正处在毕业季阶段,很多同学可能都正在忙着去弄自己的论文和答辩(不知道大家在翟天临上热搜这个事情上有没有做出过一定贡献),很多时候我们在写论文答辩甚至于其他课题研究的时候都会选择用问卷这种形式来收集数据。最后我们只需要针对问卷所取...

小白数据营的博客 6万+

Python 查询结果的容错处理

在实际开发中,查询数据库或外部服务是不可避免的操作。然而,查询过程中常常会遇到各种异常情况,如网络问题、超时、数据格式错误等。这些异常如果不加以处理,可能会导致程序崩溃或不稳定。为了提高系统的健壮性和用户体验,我们需要对查询结果进行有效的容错处理。本文将介绍如何在Python中实现查询结果的容错处理,并提供一些实用的代码示...

cnzzs的博客 687

YOLOv8_obb的C++工程部署实战:从模型转换到实时视频推理

本文详细介绍了YOLOv8_obb模型在C++环境下的完整工程部署流程,涵盖从PyTorch模型到ONNX格式的转换、基于ONNX Runtime的C++推理引擎搭建、旋转框后处理解析,以及实时视频流处理与性能优化。文章重点解析了模型转换的关键参数、环境配置的常见问题、核心推理代码的实现,并提供了实用的避坑指南,旨在帮助开发者高效完成YOLOv8_obb的C++工程部署。

weixin_29100927的博客 45

chatgpt赋能python:Python容错机制:保障代码的健壮性

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

tulingtest的博客 325

保姆级教程:在Windows/Linux双系统下搞定Microsemi Libero SoC v11.8安装与白银版License激活

本文提供了一份详细的Microsemi Libero SoC v11.8在Windows/Linux双系统下的安装与白银版License激活指南。涵盖环境准备、安装流程、License跨平台配置及常见问题排查,帮助开发者高效搭建FPGA开发环境。

weixin_30603633的博客 420

从 Product Master 视角理解 Configurable Products

摘要:SAP S/4HANA中的可配置产品(Configurable Products)通过集中管理产品变体解决主数据膨胀问题。以汽车和服务器为例,销售端显示为单一产品,生产端则处理多维度组合。核心机制包括:1)使用KMAT物料类型或Configurable标记;2)通过特征(characteristics)定义可选项;3)用分类(class)组织特征;4)配置档案(configuration profile)控制业务逻辑。这种设计将客户选择与主数据解耦,避免为每个组合创建独立物料,同时支持销售配置、生产B

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 84

Python 异常处理与日志记录

异常处理是任何编程语言中的重要组成部分,Python 也不例外。Python 提供了丰富的异常处理机制,让开发者可以更好地管理程序中出现的错误。除了捕获和处理异常外,记录异常信息也是至关重要的,以便日后排查问题和改进程序。本文将介绍如何在 Python 中捕获异常,并将异常信息记录到日志文件中。

一键难忘的博客 4146

paddle 43 用onnxruntime实现ppyoloe模型的部署(含python和c++版本)

PP-YOLOE+是PP-YOLOE模型的升级版,PP-YOLOE+_l在COCO test-dev2017达到了53.3的mAP, 同时其速度在Tesla V100上达到了78.1 FPS。PP-YOLOE+_s/m/x同样具有卓越的精度速度性价比。paddle官方只给出了基于paddle框架的部署案例,为了更好的部署,为此实现将paddle模型转换为onnx模型,然后在python下实现onnxruntime部署。后续会补充c++ onnxruntime部署

a486259的博客 1915

Python中的14个错误处理最佳实践

有时候内置的异常类型不足以描述特定的情况。这时可以使用raise语句抛出自定义异常,使错误信息更具描述性。raise CustomError("年龄不能为负数!")raise CustomError("年龄过大!")else:print("年龄有效!")try:print(e)try:print(e)年龄不能为负数!年龄过大!年龄有效!我们定义了一个自定义异常类,并在函数中根据不同的情况抛出不同的异常。这样可以更好地描述问题的具体原因。

2401_85941756的博客 1091

用python画年度和月度的日历图

用python画各种日历图,可以区分月份来画也可以画一整年的,日历图中可以体现自己的信息

weixin_44853840的博客 2138

RK3568平台(USB篇)USB基础知识

现象:把USB设备比如Android手机接到PC答1:是USB控制器,是USB控制器内嵌的root hub.答2. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone"提示你安装的是"设备驱动程序"。USB总线驱动程序负责:识别USB设备, 给USB设备找到对应的驱动程序。答3. PC的USB口内部,D-和D+接有15K的下拉电阻,未接USB设备时为低电平USB设备的USB口内部,D-或D+接有1.5K的上拉电阻;

weixin_49303682的博客 1658

Python中JSON容错处理的终极方案:从崩溃到稳定的实战路径

解决Python JSON解析中的异常难题,提供高效容错方案。涵盖网络请求、文件读取等常见场景,通过try-except、自定义解析器和默认值策略实现稳定运行,避免程序崩溃。提升代码健壮性与用户体验,Python JSON 解析 容错实战技巧值得收藏。

FuncLens的博客 802

boost::circular_buffer缓行缓冲区

1、circular_buffer实现了一个环形缓冲区,空间大小是固定的,当到达容器末尾时,将自动利用容器另一端的位置空间。 2、当程序需要容纳大量的元素,但多数情况下仅保存较少数量元素时可以使用circular_buffer_space_optimized,他可以有效的减少内存的占用,提高程序的运行效率。 3、主要接口: 4、实现一个生产者---消费者模式示例: #inc...

小米的修行之路 791

Python学习记录(十三):错误和异常处理

自定义异常类,继承于类Exception# 自定义异常类def __str__(self): # 重载__str__方法return self.data + '<0,属于非法数值'total = 0total += i# 代码测试print('总计=', total(data1))print('总计=', total(data2))# 报错 NumberError: -33<0,属于非法数值。

qq_45780762的博客 847

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Python个人学习笔记(18):模块(异常处理、traceback、日志记录)

语法错误不属于异常,处理的是程序运行时的一些意外情况File “D:\PycharmProjects\樵夫老师Python零基础课程\4_模块\39_python的异常处理.py”, line 3, in如果异常不处理,那么程序会中断尝试运行一段代码,如果不出错,就正常结束,如果出错,自动运行except内容不打断程序的后续运行在except中需要错误信息在try中收集错误信息,然后传递给except语法:except Exception as e:exception:错误类型。

NEET_LH的博客 2605

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python学习记录——11.异常处理

文章目录1.异常2.异常处理3.断言 1.异常 什么是异常 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 一般情况下,在Python无法正常处理程序时就会发生一个异常。 异常是Python对象,表示一个错误。 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 常见异常 异常名称 描述 BaseException 所有异常的基类 Sy...

赈川 269

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Python文件读写与异常处理:Day3实战学习记录清单工具

程序之所以能保留运行结果,依赖的是持久化存储机制,而文件读写正是这一能力的最低成本实现。在Python中,通过open()函数与with语句即可完成数据的写入与读取,但文件不存在、权限不足、编码不一致等问题都会触发异常。掌握异常处理,能让程序在出错时清晰反馈而非直接崩溃。对于编程初学者,将语法知识与轻量级CLI工具结合,是渡过学习低谷期的有效方式。一个可记录、可持久化的学习清单工具,既覆盖了文件操作与错误捕获的典型场景,也能真实体会到程序“有记忆”的成就感。本文基于第三天学习实践,拆解了文件读写、异常处理与

weixin_29587015的博客 45

4 Python学习记录- 异常处理

Python异常处理

LoveG_G的博客 446

Python基础学习记录(8/12)——异常处理

异常类型,引发异常的语句(try-except-else-finally),自定义异常

qq_40160983的博客 173

Task 1 Python基础入门:从变量到异常处理学习记录

文章目录前言一、变量、运算符与数据类型1. 注释2. 运算符3. print() 函数二、条件语句1. if 语句三、循环语句1.while语句2.for 语句3.跳出循环语句四、异常处理1. Python 标准异常总结2.Python标准警告总结总结 前言 阿里云天池大数据python训练营第一天 一、变量、运算符与数据类型 1. 注释 在 Python 中,# 表示注释,作用于整行。 ‘’’ ‘’’ 或者 “”" “”" 表示区间注释,在三引号之间的所有内容被注释(多行注释)。 2. 运算.

晓明呀的博客 497

python全栈学习记录(二十四)元类、异常处理

上述代码中当调用People(‘111’,222)时,触发元类的__call__方法,首先会调用People的__new__方法产生一个People类的新对象,由于People没有__new__方法,根据继承的机制解释器会去父类object中找,新对象产生后就需要根据People类的初始化方法完成对象的初始化,所以我们调用People的初始化方法并将新产生的obj对象传入完成初始化操作,最后返回这个obj对象也就完成了实例化的操作了。方法三:元类控制单例的产生。

m0_45491627的博客 713

Python学习记录之运算符重载、文件处理、异常处理、元组、集合、字典

python 中运算符重载、文件处理、异常处理、元组、集合和字典入门

Weiv_gao的博客 710

学习python记录:基础---14异常处理与模块

Python中提供了异常处理机制,可以在异常发生时捕获并处理异常,让程序更加健壮和稳定。在Python中,模块是一系列Python代码的集合,可以重复使用和引用。可以在Python中创建自己的模块,并在其他程序中使用。一般来说,可以使用这个语句块来处理没有异常情况下的操作,增强代码的可读性。将模块放在Python搜索路径下的一个目录中,就可以在其他程序中导入这个模块了。语句用于捕获异常,可以指定一段代码在出现错误时执行特定的操作,而不让程序崩溃。关键字指定异常对象,并在处理代码块中使用。

ws008168的博客 142

Python学习记录-异常处理函数的简单使用

Python异常处理函数

I_learn_code的博客 205

Python学习记录W7-09:异常处理

# Author: Allenlee try: # names[3] # data['name'] open("test.txt") a=1 except KeyError as e: print("没有这个key",e) except IndexError as e: print("列表操作错误",e) except Exception as e...

up1292的博客 143

一次关于 Python 面向对象、只读属性、raise 与异常处理的学习记录

如果ifraisereturnbreakcontinue那么很多时候else都可以省掉。因为这个分支已经结束流程了,后面直接写正常逻辑就行。除了 Python 内置异常,我也学到了可以自己定义异常类。passraise InsufficientFundsError("余额不足")这样做的好处是,错误语义更明确。如果一律都写成ValueError,虽然也能跑,但不够“业务化”。而自定义异常可以把业务逻辑表达得更清楚。:余额不足:账户冻结:转账金额非法。

2301_80204950的博客 444
上一篇: Python学习记录 模块的发布和安装
下一篇: VS2022 添加万能头#include <bits/stdc++.h>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值