Python学习 - 异常处理

news2024/11/16 15:45:57

Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855
Python学习 - 数据类型:https://blog.csdn.net/wanzijy/article/details/125341568
Python学习 - 流程控制:https://blog.csdn.net/wanzijy/article/details/125400906
Python学习 - 运算符(操作符):https://blog.csdn.net/wanzijy/article/details/125387919
Python学习 - 列表:https://blog.csdn.net/wanzijy/article/details/125457990
Python学习 - 字典:https://blog.csdn.net/wanzijy/article/details/125567225
Python学习 -元组和集合:https://blog.csdn.net/wanzijy/article/details/125577609
Python学习 - 函数(1):https://blog.csdn.net/wanzijy/article/details/125669084
Python学习 - 函数(2):https://blog.csdn.net/wanzijy/article/details/125739981
Python学习 - 类与对象:https://blog.csdn.net/wanzijy/article/details/125826952
Python学习 - 面向对象之封装:https://blog.csdn.net/wanzijy/article/details/125902925
Python学习 - 面向对象之继承:https://blog.csdn.net/wanzijy/article/details/125963829
Python学习 - 面向对象之多态:https://blog.csdn.net/wanzijy/article/details/127140632
Python - 文件操作(1):https://blog.csdn.net/wanzijy/article/details/127099071
Python - 文件操作(2):https://blog.csdn.net/wanzijy/article/details/127150189
Python学习 - 垃圾回收、特殊方法和模块:https://blog.csdn.net/wanzijy/article/details/126202999
Python学习 - 异常处理:https://blog.csdn.net/wanzijy/article/details/126803672

1. 简介

程序在运行过程当中,不可避免的出现一些错误,这些错误在程序中,称其为异常
程序中一旦出现异常,会导致程序立即终止
程序运行时出现异常,目的并不是让我们的程序直接终止,而是希望在出现异常时,可以编写代码来对异常进行处理

try#  代码块(可能出现错误的语句)
except(异常类型): as 变量
  #  代码块(出现错误以后的处理方式)
except(异常类型): as 变量
  #  代码块(出现错误以后的处理方式)else :
  #  代码块(没出错时要执行的语句)
finally:
  #  代码块(无论是否发生异常,都会执行的代码块)

try 是必须的,可以没有 else 语句
expect 和 finally 至少有一个
可以将可能出错的代码放入到 try 语句,这样如果代码没有错误,则会正常执行;如果出现错误,则会执行 expect 子句中的代码,这样我们就可以通过代码来处理异常

2. 异常传播

当在函数中出现异常时,如果在函数中对异常进行了处理,则异常不会再进行传播
如果函数中没有对异常进行处理,则异常会继续向函数调用处传播
异常传播,实际上就是异常对象抛给了调用处

在这里插入图片描述

当程序运行过程中出现异常以后,所有的异常信息都会被保存到一个专门的异常对象

在 Python 中提供了多个异常对象,比如:ZeroDivisionError 类的对象专门用来表示除0的异常;NameError 类的对象专门用来处理变量错误的异常

3. 异常对象

如果 except 后不跟任何的内容,则此时它会捕获到所有的异常
如果在 except 后跟着一个异常的类型,那么它只会捕获该类型的异常

try:
    print(10/0)
except NameError:
    print('出现NameError异常')
except ZeroDivisionError:
    print('出现ZeroDivisionError异常')
except:
    print('未知异常')

exception 是所有异常的父类,所以如果 execpt 后跟的是 Execption,也会捕获到所有的异常
可以在异常类后边跟着一个“as xx”,此时 “ xx ” 就是异常对象,通过 “ xx ” 可以看到异常的信息

try:
    print(10/0)
except NameError as e:
    print(e)
except ZeroDivisionError as e:
    print(e)  #  division by zero
except Exception as e:
    print(e)
finally:
    print('!!!!')  #  一定会执行

4. 自定义异常

raise 语句用来抛出异常
raise 语句后需要跟一个异常类或者异常的实例

def add(a, b):
    if(a < 0 or b < 0):
        raise Exception

    r = a + b
    return r

print(add(-123, 456))  #  会抛出异常

也可以加上提示的语句

def add(a, b):
    if(a < 0 or b < 0):
        raise Exception('出错啦')

    r = a + b
    return r

print(add(-123, 456))  #  抛出异常的同时,出现上述的提示信息:“Exception: 出错啦”

也可以自定义异常类,只需要创建一个类继承 Execption 即可。可以在类中写自己的方法,但一般不需要

def add(a, b):
    if(a < 0 or b < 0):
        raise Exception('出错啦')

    r = a + b
    return r

print(add(-123, 456))  #  抛出异常的同时,出现上述的提示信息:“Exception: 出错啦”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/30469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3dmax网渲云渲染哪个平台费用低?一张图要多少钱多长时间?怎么收费

话说现在的设计师应该没有不知道云渲染的吧&#xff1f;毕竟比起本地渲&#xff0c;云渲染不占本地资源&#xff0c;一次能渲很多张&#xff0c;方便又快捷&#xff0c;有谁不喜欢呢&#xff01;那么这么多的云渲染平台用哪个呢&#xff1f;今天我们就以主流的4个平台为例&…

(STM32)从零开始的RT-Thread之旅--SPI驱动ST7735(4)使用LVGL

上一篇&#xff1a; (STM32)从零开始的RT-Thread之旅--SPI驱动ST7735(3)使用DMA 经过前几章的搭建&#xff0c;底层显示已经没有问题了&#xff0c;现在需要添加上层的库&#xff0c;我选择了比较火的开源GUI库--LVGL。而RT-Thread Studio支持直接添加LVGL代码库的。 在RT-T…

人工智能-4计算机视觉和图像处理01

深度学习简介 机器学习是实现人工智能的一种途径&#xff0c;深度学习是机器学习的一个子集 深度学习相比于机器学习&#xff0c;少了‘手动特征提取’部分&#xff0c;交给网络来处理 深度学习流程&#xff1a;数据输入–训练模型&#xff08;在数据中学习&#xff09;–输出预…

IP请求工具

无缝的 IP 分配和管理 手动将不同子网中的 IP 分配给不同的 IT 管理员&#xff0c;同时遵守配置的不同访问级别可能是一项繁琐的任务。为了简化IP请求和分配的过程&#xff0c;OpUtils为您提供了一个内置的IP请求工具。使用此工具&#xff0c;您的网络管理员不必再等待其 IP 请…

数据库笔记

文章目录01 数据库概述1.1 四个基本概念1.2 数据管理技术的三个阶段1.2.1 人工管理阶段1.2.2 文件系统阶段1.2.3 数据库阶段1.3 数据独立性1.4 数据库的三级模式结构1.4.1 三级模式结构1.4.2 数据库的二级映像与数据独立性02 关系数据库2.1 关系数据结构及形式化定义2.1.1 关系…

论文管理系统(增删查改功能的实现)

目录 一、后端 1.1实体类 1.2paperMapper类 1.3 PaperMapper类 1.4Service层 1.5 Controller层 二、前端 源代码 我们已经实现列表数据了,接下来我们将实现增删查改功能,新增和修改还能够回显 一、后端 1.1实体类 实体类还是我们上一版的列表功能的实现的paper实…

IFD-x 微型红外成像仪探测距离说明

红外热成像仪是用光学镜头来收集被测物体的热辐射能量的&#xff0c;故此探测距离会受镜头视场角 和热成像像素分辨率有关。 假如某成像仪的成像分辨率为 32*32 像素&#xff0c;视场角为 75 度&#xff0c;则可以理解为从镜头发射出 32*321024 条激光来探测 1024 个点的…

数据结构初阶:队列

目录 一、队列的概念和结构 二、队列的实现 定义队列结构 初始化队列 销毁队列 检测队列是否为空 入队列 出队列 获取队列头部元素 获取队列队尾元素 获取队列中有效元素个数 优化 三、测试 四、优化后的全部代码 一、队列的概念和结构 队列:只允许在一端进行插入数据操作…

【区块链】用Python实现一条区块链

用Python实现一条区块链 点击链接获取可执行文件 本文使用 python 实现了一条简单的区块链。主要分两个模块&#xff1a;实现每个区块的结构和相关的方法、实现整条区块链的结构和相关的方法。下面是对这两个模块的描述。 每个区块主要包括两个成员&#xff1a;区块头和区块…

GlobalWebsoket.js 的使用,实现获取实时数据

在称重小程序是使用 GlobalWebsoket 实现获取实时数据前言一、逻辑分析二、实现方式1.方法整体流转分析 -- 初始化并绑定1. onLoad1. init2. getDeviceInfo3. initWebSocket4. setProperties2.方法整体流转分析 -- 解除绑定1. onBackPress2. remoeSubscribe三、参数调用分析四、…

“大数据分析”相比“传统数据分析”优势明显,体现在哪些方面

一、大数据和数据分析的定义&#xff1a; 数据分析&#xff1a;指使用适当的统计分析方法来收集数据&#xff0c;以进行大量数据分析。 大数据分析&#xff1a;指在可承受的时间范围内无法使用常规软件工具捕获&#xff0c;管理和处理的数据集合&#xff1b; 数据分析的核心…

【web渗透思路】任意账号的注册、登录、重置、查看

目录 一、任意用户注册 1.未验证邮箱/手机号 2、不安全验证邮箱/手机号 3.批量注册 4.个人信息伪造 5.前端验证审核绕过 6.用户名覆盖 二、任意用户登录 1、万能密码 2、验证码、密码回显 3、登录检测不安全 三、任意账号重置 1、重置账号名 2、验证码 3、MVC数…

2022年第三季度泛出行行业洞察:泛出行行业正在经历数智化升级的关键时期,用户规模保持平稳增长,行业整体良性发展

易观分析&#xff1a;泛出行行业涵盖综合车主服务、车辆加油充电、网约车、旅游预定、酒店预定、户外出行等领域。当前泛出行领域正在经历传统模式向数智化新模式的转变&#xff0c;智能化升级和服务品质提升在该领域变革中正发挥着积极的作用。未来泛出行领域将在数智化、电动…

Web3:价值投资的范式转移

​潜力博主推荐&#xff0c;点上面关注博主 ↑↑↑ 进化是宇宙中最强大的力量&#xff0c;是唯一永恒的东西&#xff0c;是一切的驱动力。———桥水基金 雷.达利奥 时间拉长&#xff0c;进化才是人类的主旋律。过去&#xff0c;环境的变化是进化的主因。 现在&#xff0c;技…

Servlet | 深度剖析转发和重定向

一&#xff1a;深度剖析转发和重定向 &#xff08;1&#xff09;在一个web应用中通过两种方式可以完成资源的跳转 第一种方式&#xff1a;转发方式 第二种方式&#xff1a;重定向方式 &#xff08;2&#xff09;转发和重定向的区别 区别一&#xff1a;代码上的区别 ①转发 &a…

阿里资深专家撰写出的 Nginx 底层与源码分析手册,GitHub 已爆赞

NGINX 发展史&#xff1a; 过去最主流的服务器是 1995 年发布的 Apache 1.0。Apache 源于 NCSAHTTPd 服务器&#xff0c;是一个多进程模型的 Web 服务器。但运行到后期&#xff0c;Apache 渐渐出现很多问题&#xff0c;比如内存占用很大、扩展需挂接第三方库、并发能力受限等。…

高效的股票数据接口工具有哪些?

我们已经知道了量化投资是是通过数量化方式及计算机程序化发出买卖指令&#xff0c;以获取稳定收益为目的的交易方式&#xff0c;而其中最重要的载体是数据。在金融领域中量化的应用让金融分析师、外汇交易员、产品研发员等技术人员又有了新的用武之地&#xff0c;转型成为量化…

【微信小程序】saveFile:fail tempFilePath file not exist

开发微信小程序尝试保存文件时&#xff0c;会提示saveFile:fail tempFilePath file not exist错误&#xff0c;是什么问题呢&#xff0c;接下来带你如何分析和解决问题 文章目录1. 定位问题2. 解决问题1. 定位问题 首先&#xff0c;看一下代码怎么写得&#xff0c;如下所示 w…

数据结构之线性表中的顺序表【详解】

前言 现在是北京时间11月24号0点2分&#xff0c;天气有一些冷&#xff0c;我现在很困&#xff0c;但是博客还没写&#xff0c;我很想睡觉&#xff0c;假如我现在放弃的码字&#xff0c;往床上一趟&#xff0c;其实也不怎么样&#xff0c;但是我们不能有拖延症&#xff0c;所以…

关于元宇宙的六七八你知道多少?

&#x1f3e0;个人主页&#xff1a;黑洞晓威 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晓威&#xff0c;一名普普通通的大二在校生&#xff0c;希望在CSDN中与大家一起成长。&#x1f381;如果你也在正在学习Java&#xff0c;欢迎各位大佬来到我的博客查漏补缺…