python编程Day13-异常介绍捕获异常抛出异常
- 异常
- 介绍
1, 程序在运行时, 如果Python解释器遇到到一个错误, 则会停
止程序的执行, 并且提示一些错误信息, 这就是异常.
2, 程序停止执行并且提示错误信息这个动作, 通常称之为: 抛出
(raise) 异常

# f = open('aaaa.txt')
# FileNotFoundError: [Errno 2] No such file or directory: 'aaaa.txt'# a = 10 / 0
# ZeroDivisionError: division by zero# b = int('78.1')
# ValueError: invalid literal for int() with base 10: '78.1'
- 捕获异常
1, 程序代码在执行的时候, 如果遇到异常, 程序就会终止,不会
继续执行
2, 需求: 程序遇到异常之后, 不会结束,可以继续执行,
3, 实现需求: 就需要使用 异常捕获
try:可能发生异常的代码
except: # 可以捕获任意类型的异常发生了异常执行的代码
# 1. 获取用户从键盘输入的数据
num = input('请输入数字:')
try:# 2. 转换数据类型为整数num = int(num)# 3. 数据转换类型正确时, 输出数据内容print(num)
except:# 4. 数据转换类型错误时, 提示输入正确数据print('请输入正确的数字。')
- 捕获指定类型的异常
发生的异常可能存在多种, 针对不同类型的异常, 解决处理的方
案不一样
try:可能发生异常的代码
except 异常类型1:发了异常类型1,执行的代码
except 异常类型2:发了异常类型2,执行的代码
except .....:pass
try:num = int(input('请输入数字:'))num1 = 10 / numprint(num1)
except ValueError:print("输入的内容非数字,请重新输入。")
except ZeroDivisionError:print("不能输入数字 0,请重新输入。")
- 捕获未知类型的异常(使用最多)
try:可能发生异常的代码
except Exception as 变量: # Exception 常⻅异常类的父类, 变量 异常对象,print()可以打印异常信息发生异常执行的代码
try:num = int(input('请输入数字:'))num1 = 10 / numprint(num1)
except Exception as e:print(f'发生异常,{e}')
- 异常捕获的完整结构
try:可能发生异常的代码
except 异常类型1:发生了指定类型的异常执行的代码
except 异常类型2:发生了指定类型的异常执行的代码
except Exception as e:发生了其他类型的异常执行的代码
else:没有发生异常,会执行的代码
finally:不管有没有发生异常,都会执行的代码
# # 需求:
# # 1. 获取用户输入的数字
# num = input('请输入数字:')
# try:
# # 2. 判断获取的数字是否整数
# num = int(num)
# except Exception as e:
# # 3. 如果不是整数, 提示输入错误
# print('输入错误。', e)
# else:
# # 4. 如果是整数, 则进一步判断是奇数还是偶数
# if num % 2 == 0:
# print('偶数')
# else:
# print('奇数')
# finally:
# # 5. 最终提示: 程序运行结束
# print("程序运行结束")
## 方法二
num1 = input('请输入数字:')
if num1.isdigit():# 如果是 True,表示是整数# 类型转换num1 = int(num1)# 判断奇偶数if num1 % 2 == 0:print('偶数')else:print('奇数')
else:print('输入错误')
print('程序运行结束')
- 异常传递
1, 异常传递 是 Python 中已经实现好的功能, 不需要我们写代
码实现
2, 异常传递是指, 在函数的嵌套调用过程中,如果发生了异常,
没有进行捕获,会将这个异常传递到函数调用的地方, 直到被捕获
为止, 如果一直没有捕获,才会报错,终止执行
# 1、定义函数demo1()提示用户输入一个整数并返回
def demo1():num = int(input('请输入一个整数:'))return num# 2、定义函数 demo2()调用demo1()
def demo2():num2 = demo1()# 3、在主程序中调用demo2()
if __name__ == '__main__':try:demo2()except Exception as e:print(e)
- 抛出异常
1, 在执行代码的过程中,之所以会发生异常,终止代码执行,是因
为 代码执行 遇到了 raise 关键字
2, raise 关键字的作用, 就是来抛出异常,让代码终止执行
3, 应用场景: 自己书写代码模块,让别人使用,为了让别人按照你
的规定使用你的代码,你就可以在他不满足你条件的情况下,使用
raise 抛出异常



相关文章:
python编程Day13-异常介绍捕获异常抛出异常
异常 介绍 1, 程序在运行时, 如果Python解释器遇到到一个错误, 则会停 止程序的执行, 并且提示一些错误信息, 这就是异常. 2, 程序停止执行并且提示错误信息这个动作, 通常称之为: 抛出 (raise) 异常 # f open(aaaa.txt) # FileNotFoundError: [Errno 2] No such file or dire…...
【JAVA高级篇教学】第二篇:使用 Redisson 实现高效限流机制
在高并发系统中,限流是一项非常重要的技术手段,用于保护后端服务,防止因流量过大导致系统崩溃。本文将详细介绍如何使用 Redisson 提供的 RRateLimiter 实现分布式限流,以及其原理、使用场景和完整代码示例。 目录 一、什么是限流…...
力扣-图论-8【算法学习day.58】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...
Spring 中的验证、数据绑定和类型转换
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
Github----提交人不是自己
账号用户名都设置对的,但是提交人不是自己 解决 发现是用户名和账号都夹了"号导致 git config --global user.name "Your Name" git config --global user.email "your.emailexample.com"不用引号 git config --global user.name Your Name git …...
常用工具软件
前言 之前汇总过一篇嵌入式开发工具,但是掺杂了一些更偏向于日常使用的软件工具,这里单独提出来分享,都是自己在用的。 1.文件对比工具 BeyondCompare 文件对比利器,添加右键快捷键后。选中两个文件,右键可以直接进…...
Oracle报错ORA-01653: 表xx无法通过 8192在表空间中扩展
向Oracle 19g数据库中批量插入数据,当插入近2亿条数据后,报出如下错误: ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展 查看表空间,发现表空间大小已达到32G,表空间无法进行自动扩展了。(初始…...
【C语言】库函数常见的陷阱与缺陷(3):内存分配函数
目录 一、malloc 函数 1.1. 功能与常见用法 1.2. 陷阱与缺陷 1.3. 安全使用建议 1.4. 安全替代和代码示例 二、calloc 函数 2.1. 功能与常见用法 2.2. 陷阱与缺陷 2.3. 安全使用建议 2.4. 安全替代和代码示例 三、realloc 函数 3.1. 功能与常见用法 3.2. 陷阱与缺…...
Vue前端实现预览并打印PDF文档
一. 需求 1. 点击文档列表中的【打印】按钮,获取后台生成的PDF的url,弹窗进行预览: 2. 点击【打印】按钮,进行打印预览和打印: 二. 需求实现 首先后台给的是word文档,研究了一圈后发现暂时无法实现&…...
CSS学习记录07
CSS轮廓 轮廓是在元素周围绘制的一条线,在边框之外,以凸显元素。 CSS拥有如下轮廓属性: outline-styleoutline-coloroutline-widthoutline-offsetoutline 注意:轮廓与边框不同。不同之处在于:轮廓是在元素边框之外…...
喆塔科技携手国家级创新中心,共建高性能集成电路数智化未来
集创新之力成数智之塔 近日,喆塔科技与国家集成电路创新中心携手共建“高性能集成电路数智化联合工程中心”并举行签约揭牌仪式。出席此次活动的领导嘉宾包含:上海市经济和信息化委员会、上海市集成电路行业协会、复旦大学微电子学院、国家集成电路创新中…...
基于单片机的汽车雨刷器装置
摘要 下雨天时道路十分模糊,能见度非常低,司机分散注意力去手动打开雨刷器开关会非常危险。据统计,全世界雨天行车的车祸事故有7%是因为司机手动打开雨刷分心导致的。为了减小司机因为手动打开雨刷发生车祸的概率,所以…...
013-SpringBoot 定义优雅的全局异常处理方式
SpringBoot 定义优雅的全局异常处理方式 一、概述二、定义全局异常接口三、定义全局异常枚举四、定义全局基础异常五、定义全局基础业务异常六、定义全局返回七、定义全局返回工厂八、全局异常处理九、实体类十、Controller十一、效果展示一、概述 在日常项目开发中,异常是常…...
nginx 网页正常访问 F5 404
前端打包部署完,无论pc-web或h5-wap,访问正常,一刷新就会404。 解决方案: 在项目的nginx子配置文件中,加上以下代码 try_files $uri $uri/ /index.html;...
Idea Spring Initializr没有 Java 8选项解决办法
问题描述 在使用IDEA中的Spring Initializr创建新项目时,Java 版本近可选择Java17,21 。不能选择Java8;SpringBoot 版本也只有 3.x 问题原因 Spring 官方( https://start.spring.io/)不再提供旧版本的初始化配置 解决方案 方案 1 使用阿里…...
【Leetcode Top 100】104. 二叉树的最大深度
问题背景 给定一个二叉树 r o o t root root,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 数据约束 树中节点的数量在 [ 0 , 1 0 4 ] [0, 10 ^ 4] [0,104] 区间内。 − 100 ≤ N o d e . v a l ≤ 100 -100 \le Nod…...
C#实现一个HttpClient集成通义千问-开发前准备
集成一个在线大模型(如通义千问),来开发一个chat对话类型的ai应用,我需要先了解OpenAI的API文档,请求和返回的参数都是以相关接口文档的标准进行的 相关文档 OpenAI API文档 https://platform.openai.com/docs/api-…...
使用ssh免密登录实现自动化部署rsync+nfs+lsync(脚本)
单机一键部署sshrsyncnfslsync 执行准备 主机信息 主机角色外网IP内网IP主机名nfs、lsync10.0.0.31176.16.1.31nfs客户端10.0.0.7176.16.1.7web01rsync、nfs10.0.0.41172.16.1.41backup 秘钥信息 #web01可以免密连接nfs和backup [rootweb01 ~]# ssh-keygen [rootweb01 ~]#…...
若依集成更好用的easyexcel
背景 若依使用的是apach poi并在此基础上进行封装apach poi的原生的api是很复杂的,若依简化了了此操作apach poi的上传速率和下载速率都是没有优化的,依赖于文件大小的限制在此前提下,如果没法满足客户的需求(超大型文件的上传&am…...
去除背景 学习笔记
目录 rembg rembg 安装: pip install rembg import os from glob import glob from rembg import remove from argparse import ArgumentParser from PIL import Image if __name__ __main__:parser ArgumentParser()parser.add_argument(--path, typestr, re…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
