Python进阶系列(一)——异常处理

news2024/11/16 23:48:08

异常处理

在程序中,如果出现异常,我们需要捕捉异常,终止程序(可能的话),并且提示错误信息。
在这里插入图片描述
写好异常处理,对于debug有很大的好处,可以帮助我们捕捉到错误所在的位置,以及错误的原因。

try-except语句

python使用try-case语句来捕捉异常,在try内执行逻辑正常时的运行代码,在except里写下出现不同类型错误时的处理方式。
在这里插入图片描述
int方法在读到无法转换为int的输入时,会抛出ValueError,try-except捕捉到抛出的ValueError,进入到对应的分支。

抛出异常

有了捕捉异常的语句,那么我们需要在一些函数里抛出异常,以便在外界调用函数时捕捉异常。

raise RuntimeError('What a kerfuffle')

如果不是被try-except捕捉到的异常,那么程序会直接终止。
在这里插入图片描述

异常类型

def test():
   raise RuntimeError('123')

try:
   print('good')
   test()
   print('bad')
except RuntimeError as e:
   print(e, type(e))
finally:
   print('over')

输出

good
123 <class 'RuntimeError'>
over

每一个异常都有一个类型,每一个类型就是一个类,例如RuntimeError和ValueError,我们可以用as来获得异常实例,并且进行一定的处理。注意,异常看起来像一个字符串,但其实异常是一个类,例如这里的e的类型是RuntimeError。

捕捉多个异常

在这里插入图片描述
使用多个except,如果有多个异常有相同的处理方式,可以放在一个tuple内处理。
可以使用except Exception来捕获所有的异常,但是不建议这么用

finally

在这里插入图片描述
不论是正常执行,还是出现异常,都会运行的代码部分,一般是用于资源的释放。

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

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

相关文章

centos 7.9 部署django项目

1、部署框架 主要组件&#xff1a;nginx、uwsgi、django项目 访问页面流程&#xff1a;nginx---》uwsgi---》django---》uwsgi---》nginx 2、部署过程 操作系统&#xff1a;centos 7.9 配置信息&#xff1a;4核4G 50G 内网 eip &#xff1a;10.241.103.216 部署过程&…

【STM32】 工程

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星TO…

Maven自定义脚手架(多module模块)+自定义参数

脚手架 视频教程&#xff1a; Maven保姆级教程 脚手架是一个项目模板&#xff0c;包含常用的工程结构、代码。 1 自定义脚手架 脚手架创建的步骤如下&#xff0c;先创建一个工程&#xff0c;把常用的代码写好&#xff0c;进入工程根目录&#xff0c;进行如下操作&#xff1a; …

webSocket 笔记

1 认识webSocket WebSocket_ohana&#xff01;的博客-CSDN博客 一&#xff0c;什么是websocket WebSocket是HTML5下一种新的协议&#xff08;websocket协议本质上是一个基于tcp的协议&#xff09;它实现了浏览器与服务器全双工通信&#xff0c;能更好的节省服务器资源和带宽…

全网首发 | 科学计算与系统建模仿真系列课程上线啦!

当前&#xff0c;信息物理融合系统&#xff08;CPS&#xff09;、基于模型的系统工程&#xff08;MBSE&#xff09;、数字孪生、数字化工程等新型技术快速发展&#xff0c;推动装备研制从信息化时代步入到数字化时代&#xff0c;并且呈现数字化与智能化相融合的新时代特点。MWO…

Flink的常用算子以及实例

1.map 特性&#xff1a;接收一个数据&#xff0c;经过处理之后&#xff0c;就返回一个数据 1.1. 源码分析 我们来看看map的源码 map需要接收一个MapFunction<T,R>的对象&#xff0c;其中泛型T表示传入的数据类型&#xff0c;R表示经过处理之后输出的数据类型我们继续往…

vue2+Spring Boot2.7 大文件分片上传

之前我们文章 手把手带大家实现 vue2Spring Boot2.7 文件上传功能 将了上传文件 但如果文件很大 就不太好处理了 按正常情况甚至因为超量而报错 这里 我弄了个足够大的文件 我们先搭建 Spring Boot2.7 环境 首先 application.yml 代码编写如下 server:port: 80 upload:path:…

机器学习、cv、nlp的一些前置知识

为节省篇幅&#xff0c;不标注文章来源和文章的问题场景。大部分是我的通俗理解。 文章目录 向量关于向量的偏导数&#xff1a;雅可比矩阵二阶导数矩阵&#xff1a;海森矩阵随机变量随机场伽马函数beta分布数学术语坐标上升法协方差训练集&#xff0c;验证集&#xff0c;测试集…

2023年7月京东冰箱行业品牌销售排行榜(京东运营数据分析)

作为日常使用的大家电之一&#xff0c;如今我国冰箱产业已渐趋饱满&#xff0c;市场增长有限。今年上半年&#xff0c;冰箱市场整体销额同比去年来看勉强保持小幅增长。不过&#xff0c;7月份&#xff0c;冰箱大盘的销售表现就略显萧条了。 根据鲸参谋电商数据分析平台的相关数…

css3-grid:grid 布局 / 基础使用

一、理解 grid 二、理解 css grid 布局 CSS Grid布局是一个二维的布局系统&#xff0c;它允许我们通过定义网格和网格中每个元素的位置和尺寸来进行页面布局。CSS Grid是一个非常强大的布局系统&#xff0c;它不仅可以用于构建网格布局&#xff0c;还可以用于定位元素&#xf…

cpu和io的关系

在说io的五中模型之前,先说说Io把文件从哪里移到了哪里 自己的理解: 根据工作或者遇到的业务. 文件不可能存在缓存或在内存中,因为缓存和内存不能永久性储存东西, 文件需要被永久性储存.因此文件都存在电脑的硬盘里, 或者存在云服务器的它们的硬盘里. 我们io文件, 第一…

实现语音识别系统:手把手教你使用STM32C8T6和LD3320(SPI通信版)实现语音识别

本文实际是对LD3320&#xff08;SPI通信版&#xff09;的个人理解&#xff0c;如果单论代码和开发板的资料而言&#xff0c;其实当你购买LD3320的时候&#xff0c;卖家已然提供了很多资料。我在大学期间曾经多次使用LD3320芯片的开发板用于设计系统&#xff0c;我在我的毕业设计…

系统学习Linux-Mariadb高可用MHA

概念 MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大程度上…

IDEA 找不到项目 ‘org.springframework.boot:spring-boot-starter-parent:3.1.2‘

找不到项目 ‘org.springframework.boot:spring-boot-starter-parent:2.6.7’ 这个问题主要是因为ide的缓存导致的&#xff0c;我们直接清理缓存并重启ide 重启之后ide会对pom文件进行编排索引完成之后问题就没有了

去掉鼠标系列之一: 语雀快捷键使用指南

其实应该是系列之二了&#xff0c;因为前面写了一个关于Interlij IDEA的快捷键了。 为什么要写这个了&#xff0c;主要是觉得一会儿用鼠标&#xff0c;一会儿键盘&#xff0c;一点儿不酷&#xff0c;我希望可以一直用键盘&#xff0c;抛开鼠标。后面陆续记录一下各个软件的快捷…

STM32CubeMx之esp8266的at指令使用

AT //返回ok则为正常 ATCWMODE1//设置为设备模式 ATCWLAP//搜索附近可用wifi ATCWJAP"CMCC-5-7","chb513029"//连接热点 ATCIPMUX0//设置wifi为单连接 ATCIPSTART"TCP","192.168.37.1",1001//连接tcp 这里遇到了重重问题 这里我…

VScode搭建Opencv(C++开发环境)

VScode配置Opencv 一、 软件版本二 、下载软件2.1 MinGw下载2.2 Cmake下载2.3 Opencv下载 三、编译3.1 cmake-gui3.2 make3.3 install 四、 VScode配置4.1 launch.json4.2 c_cpp_properties.json4.3 tasks.json 五、测试 一、 软件版本 cmake :cmake-3.27.2-windows-x86_64 Mi…

Go framework-Beego

一、Beego Beego用于在Go中快速开发企业应用程序&#xff0c;包括RESTful API、web应用程序和后端服务。 Beego 源码地址 Beego 官方站点 Beego 官方说明 Beego的特性 RESTful支持MVC架构模块化自动API文档注释路由命名空间开发工具集合Full stack for Web & API Bee…

iTOP-2K1000开发板固态硬盘分区

固态硬盘分区的目的是把固态硬盘分成一个分区并格式化为 ext2&#xff0c;在 linux 系统下&#xff0c;分区主要使用的命令是 fdisk 命令。接下来我们一起看下分区操作。 U 盘启动成功以后进到文件系统&#xff0c;输入命令 fdisk -l 查看当前开发板的固态硬盘的节点&#xff…

易服客工作室:UberMenu WordPress插件 - 网站超级菜单插件

UberMenu WordPress插件是一个用户友好、高度可定制、响应迅速的 Mega Menu WordPress 插件。它与 WordPress 3 菜单系统一起开箱即用&#xff0c;易于上手&#xff0c;但功能强大&#xff0c;足以创建高度定制化和创意的大型菜单配置。 网址: UberMenu WordPress插件 - 网站超…