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…...
【C++ 多态】虚函数 · 虚表 · 重写,一篇彻底弄明白!
C 多态详解 C多态是面向对象的核心灵魂,本文将由浅入深,带你循序渐进地掌握多态的方方面面,全程干货,坐稳发车~ ദ്ദി˶ー̀֊ー́ )✧ 文章目录C 多态详解1. 什么是多态?2. 运行时多态的实现前…...
对比直接使用厂商API,Taotoken在路由容灾上的体验差异
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商API,Taotoken在路由容灾上的体验差异 1. 引言:服务稳定性的现实挑战 在将大模型能力集成…...
使用 Taotoken CLI 工具一键配置团队开发环境中的大模型密钥
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用 Taotoken CLI 工具一键配置团队开发环境中的大模型密钥 在团队协作开发中,统一管理大模型 API 密钥和端点配置是一…...
保姆级教程:用Forge 1.16.3给你的Minecraft服务器装Mod,从下载到联机全流程
保姆级教程:用Forge 1.16.3给你的Minecraft服务器装Mod,从下载到联机全流程 和朋友一起玩Minecraft原版生存久了,难免会想尝试更多新玩法。Mod能为游戏带来全新生物、装备、魔法系统甚至维度冒险,但很多玩家在搭建Mod服务器时会被…...
基于MCP协议与HaE工具构建AI安全情报助手实战指南
1. 项目概述:一个为安全工程师量身定制的“情报雷达”如果你是一名安全工程师、渗透测试人员或者负责企业安全运营的从业者,那么你一定对“信息收集”和“威胁情报”这两个词深有体会。每天,我们都需要从海量的数据源中——无论是公开的漏洞库…...
实测推荐!2026年毕业论文5000字范文免费下载AI写作工具排行,查重降AI率全攻略
本文由知学术AIPaperGPT内容团队实测撰写 2026-05-11实测推荐!2026年毕业论文5000字范文免费下载AI写作工具排行,查重降AI率全攻略又是一年毕业季,无数本科、硕士生正为毕业…...
为什么Windows用户需要APK安装器?三大场景解决你的跨平台痛点
为什么Windows用户需要APK安装器?三大场景解决你的跨平台痛点 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经遇到过这样的困境:在电…...
超高清电视普及困境解析:从技术参数到生态系统的完整思考
1. 超高清电视的“非主流”开局:一场始于2013年的行业迷思 如果你在2013年初的拉斯维加斯CES展上,听到关于“Ultra HDTV”(超高清电视,后文简称UHDTV)的喧嚣,感觉就像身处一场盛大的交响乐彩排现场——乐手…...
5分钟快速上手PptxGenJS:用JavaScript轻松生成专业PPT的完整指南
5分钟快速上手PptxGenJS:用JavaScript轻松生成专业PPT的完整指南 【免费下载链接】PptxGenJS Build PowerPoint presentations with JavaScript. Works with Node, React, web browsers, and more. 项目地址: https://gitcode.com/gh_mirrors/pp/PptxGenJS 你…...
三步实现iOS虚拟定位:无需越狱的终极免费方案
三步实现iOS虚拟定位:无需越狱的终极免费方案 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation iFakeLocation是一个专业级的iOS虚拟定位工具&am…...
