Python从入门到精通9天(异常的处理)
异常处理
- 异常处理语句
- 多个异常
- raise关键字
- 常见的异常类型
- 自定义异常
异常处理语句
在了解异常处理之前,我们先对它的语句进行说明,如下:
try:表示测试代码块以查找错误
except:表示处理错误
finally:表示无论try和except返回的结果如何,都必须执行
else:表示所有异常都不执行就返回else关键字下的异常处理
代码如下:
try:# 需要执行的语句# x没有定义,程序必然会报错print(x)
except Exception as e:# 将错误进行打印print(e) #name 'x' is not defined
finally:# 不管怎样都地执行print("我已经执行完毕")
如果没有try except语句,那么程序将会报一大堆地红色错误,except语句负责捕获异常,并将结果进行返回。
多个异常
当程序出现多个异常时,可以根据自己地需要定义多个Exception,即定义错误地类型。
代码如下:
try:# 除数不能为0# 这里可以使用内置的 ZeroDivisionError类型a = 3 / 0except NameError as e:print(e)
except ValueError as f:print(f)
except:print("其他的异常")
或者使用else语句进行输出,当所有的异常都不是报错的类型时,则执行else语句。
代码如下:
try:a = 3/0
except NameError as e:print(e)
except ValueError as f:print(f)
else:print("其他的异常")
raise关键字
raise关键字用来引发异常,并且能够定义所引发异常类型、以及打印给用户的文本。这个关键字能够在使用条件语句的时候抛出异常。
代码如下:
try:a = int(input("请输入一个整数"))if a > 10:raise TypeError("输出的数太大了,抛出异常")
except TypeError as e:print(e)
常见的异常类型
以下是一些常见的异常类型:
ValueError:传递给函数的参数无效或不正确。
TypeError:函数或操作应用于不适当的数据类型。
AttributeError:尝试访问对象不存在的属性。
KeyError:试图访问不存在的字典键。
IndexError:尝试访问不存在的列表索引或元组索引。
IOError:在执行文件操作时发生输入/输出错误。
ImportError:尝试导入无法找到的模块或包。
ZeroDivisionError:除数不能为零。
KeyboardInterrupt:用户中断了程序的执行。
NameError:尝试访问不存在的变量或函数。
NotImplementedError:尝试调用尚未实现的方法。
自定义异常
我们在处理异常时,不知道python自带的异常有哪些,我们想自定义异常,同时还能让python解释器进行识别。这时候我们该怎么办呢?
代码如下:
# 创建一个类使它继承Exception父类
# 这里就相当于创建了一个自己的异常类class MyError(Exception):# 给定一个msg参数,用于接收异常的信息def __init__(self,msg):self.msg = msgtry:a = int(input("请输入一个整数"))if a > 10:# 使用raise关键字进行异常的抛出raise MyError("输出的数太大了,抛出异常")
except MyError as e:print(e)相关文章:
Python从入门到精通9天(异常的处理)
异常处理 异常处理语句多个异常raise关键字常见的异常类型自定义异常 异常处理语句 在了解异常处理之前,我们先对它的语句进行说明,如下: try:表示测试代码块以查找错误 except:表示处理错误 finally:表…...
微服务学习——Docker
初识Docker 项目部署的问题 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题开发、测试、生产环境有差异 Docker Docker如何解决依赖的兼容问题的? 将应用的Libs(函数库)、 Deps…...
QMS-云质说质量 - 5 解决中小企业质量问题的钥匙在哪里?
云质QMS原创 转载请注明来源 作者:王洪石 引言 一个小小的质量问题可能引发蝴蝶效应 日常生活中,我们每天都会遇到各种各样的问题,并随着它们喜怒哀乐。企业也不例外,即使有很好的管理体系以及非常高素质的员工,一些错…...
基于Java+Spring+vue+element社区疫情服务平台设计和实现
基于JavaSpringvueelement社区疫情服务平台设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 …...
实战项目:手把手带你实现一个高并发内存池
项目介绍 1.这个项目做的是什么? 当前项目是实现一个高并发的内存池,他的原型是google的一个开源项目tcmalloc,tcmalloc全称Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替…...
原理这就是索引下推呀
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 索引下推是之前面试的时候遇到的一个面试题,当时没有答上来,今天来学习一下。 介绍索引下推之前先看一下MySQL基…...
个人通讯录(二)
个人通讯录(二) 需求: 通讯录(phone)用来保存若干个联系人的信息,且可以按照联系人姓名的拼音升序排序。要求通讯录提供一下功能: 1.添加联系人信息 2.删除指定联系人信息 3.修改指定联系人…...
DockerK8S常见面试知识
Docker docker的工作原理 docker是一个client-server结构的系统,docker守护进程运行在宿主机上,守护进程从客户端接受命令并管理运行在主机上的容器,容器是一个运行时环境,这就是我们说的集装箱 docker组成部分 1、docker cli…...
tcpdump arping nsenter
tcpdump 参数说明 tcpdump 是一款常用的网络抓包工具,它可以捕获网络数据包并进行分析。tcpdump 的参数非常多,下面是一些常用的参数说明: -i:指定要监听的网络接口,如 -i eth0。 any-n:禁用地址解析&…...
Python - 简单快速回忆基础语法
Python 是一种高级编程语言,易学易用 以下是 Python 基础语法的概述: 注释 Python 使用 # 符号来注释代码行。代码行 # 后的所有内容都将被认为是注释,不会被解释器执行,只是对代码的注释说明 # 这是一条注释 print("Hel…...
蓝牙耳机接打电话哪个比较好?接打电话最好的蓝牙耳机
技术已经发展到如此程度,耳机可以淹没嘈杂环境中不断出现的杂音,同时还能让我们在通话、音乐和娱乐方面保持清晰,既然如此,我们就来整理一下2023年适合通话和娱乐的无线耳机清单。 一、南卡小音舱Lite2蓝牙耳机 参考价格&#x…...
DeepSORT中的卡尔曼滤波
本文是看了DeepSORT方法视频之后,关于其中使用的卡尔曼滤波的理解 DeepSORT视频链接 首先贴几个比较好的,与本文由有关的几个帖子 图说卡尔曼滤波,一份通俗易懂的教程 卡尔曼滤波(Kalman Filter)原理与公式推导 卡尔…...
【Linux网络服务】SSH远程访问及控制
一、openssh服务器 1.1ssh协议 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能; SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令࿱…...
AutoGPT的出现,会让程序员失业吗?
最近,一个叫AutoGPT的模型火了,在GitHub上线数周Star数就直线飙升。截至目前,AutoGPT的Star数已经达到87k,马上接近90k,超过了PyTorch的65k。 根据AutoGPT的命名,就可以发现其神奇之处在于“auto”&#x…...
微信小程序php+vue 校园租房指南房屋租赁系统
本着诚信的原则,平台必须要掌握出租方必要的真实可信的信息,这样就可以防止欺诈事件的发生,事后也可以联系找到出租方。并且租金等各方面规范标准化,在这易租房诚信可信的平台让承租方与出租方充分有效对接,既方便了承…...
水果FL Studio21最新中文完整版下载更新及内容介绍
简单总结一下,本次小版本更新最重要的内容,我个人认为是对于M1芯片的适配。其余的比如EQ2,3x这些我们很熟悉的插件虽说也有更新,但是估计并没有特别大的改动。我个人的话会先放一段时间,等下次有其他更让我感兴趣的内容…...
springboot+vue小区物业管理系统(源码+文档)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的小区物业管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…...
GEEer成长日记二十三:chatGPT可以帮我们提取水体边缘吗?
欢迎关注公众号:GEEer成长日记 目录 01 首先,chatGPT是什么? 02 进入正题,如何进行边缘检测? chatGPT推出之后,引发了激烈的讨论,今天带各位看看它在GEE方面能为我们做什么。原本想着它可以…...
程序员阿里三面无理由挂了,被HR一句话噎死,网友:这可是阿里啊
进入互联网大厂一般都是“过五关斩六将”,难度堪比西天取经,但当你真正面对这些大厂的面试时,有时候又会被其中的神操作弄的很是蒙圈。 近日,某位程序员发帖称,自己去阿里面试,三面都过了,却被…...
js面试题
在全局作用域下声明了一个变量 arr, 它的初始值是一个空数组 第二段代码,循环计数器变量i的初始值为0,循环条件是i的值小于2, 也就是说当i的值为0或者1时, 循环条件才能成立 才能够进入到循环体 当i的值为2时循环条件不成立&…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...
