Python 异常处理(try except)

文章目录

  • 1 概述
    • 1.1 异常示例
  • 2 异常处理
    • 2.1 捕获异常 try except
    • 2.2 抛出异常 raise
  • 3 异常类型
    • 3.1 内置异常
    • 3.2 自定义异常

1 概述

1.1 异常示例

  • 异常:程序执行中出现错误,若不处理,则程序终止

示例代码:

v = 6 / 0  # 除数不能为 0print(v)

执行结果:
**在这里插入图片描述

2 异常处理

2.1 捕获异常 try except

# try:常规程序块
try:v = 6 / 0print(v)
# except: 捕获异常(捕获到就停止) 
except ZeroDivisionError:  # 测试 IOErrorprint('被除数不能为 0')
except Exception as e:  # 常规异常的基类print(f'仅异常未被上述捕获时,执行此处,{e}')
# else:仅无异常时,执行
else:print('仅无异常时,执行')
# 无论是否异常,均执行
finally:print('无论是否异常,均执行')

2.2 抛出异常 raise

try:a = input("输入一个数:")# 判断用户输入的是否为数字if not a.isdigit():raise ValueError("a 必须是数字")
except ValueError as e:# 返回异常信息print(e)  # a 必须是数字# 返回对象的规范字符串表示形式print("引发异常:", repr(e))  # 引发异常:ValueError('a 必须是数字')

3 异常类型

3.1 内置异常

  • Python 模块内置的
内置异常描述信息
ZeroDivisionError除以零的错误
ValueError值错误,通常与数据类型转换相关
TypeError类型错误,操作不支持的数据类型
FileNotFoundError文件未找到错误
Error  # 了解即可。 输入 Error,会提示所有的标准异常

在这里插入图片描述

3.2 自定义异常

  • 需继承 Exception 类
class MyError(Exception):def __init__(self, code, message):self.code = codeself.message = messagedef __str__(self):return f"{self.code}: {self.message}"def divide(a, b):if b == 0:raise MyError(400, "除数不能为0")return a / bif __name__ == '__main__':try:result = divide(6, 0)except MyError as e:print(e)  # 400: 除数不能为0

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python开发之个微批量删除好友

简要描述: 删除联系人 请求URL: http://域名地址/delContact 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wI…

中伟视界:AI盒子中的报警预录像功能能解决什么问题?实现原理是怎样的?

现代社会智能安防已成为各行各业的重要一环,而AI盒子中的报警预录像功能更是智能安防的一大利器。这一功能能够解决很多安防方面的难题,其实现原理更是技术创新的体现。 首先,让我们来看看AI盒子中的报警预录像功能能解决哪些问题。在传统的安…

网络周期间全球在线销售额飙升,提高排名是关键:7大策略速览

网络周期间(11月23-27日),全球在线销售额增长6%,达到2980亿美元,其中美国销售额708亿美元,增长5%。增长主要由订单量推动,消费者需求首次增长,寻求低价和便利。人工智能支持的无缝和…

NAT网络地址转换

目录 什么是nat nat 实验如何使用SNAT 和 DNAT 实验环境 内网连接外网 1.给网关服务器添加网卡(两张网卡) 2.查看新添加的网卡名 编辑网卡配置 3.开启路由转发 4.打开内网服务器 5.切换到外网服务器(192.168.17.30&#xff0…

SAP_ABAP_编程基础_内表_创建内表 / 填充内表 / 读取内表 /修改和删除内表行 / 内表排序 / 创建顺序表 / 比较内表 / 初始化内表

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读470次。目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提供超级燃料!https://blog.csdn.net/j…

写给步入三十的自己,2023年终总结!

前言 古语有云: “二十而立,三十而肆”,而我在二十岁这些年已经有一定的责任感和独立思考了,但是还未步入三十,所以为了之后有一定的胆识和能力,我在今年做了目前能做的准备。 今年已做事件 工作相关 1.拿到了PMP证书…

“最甜港姐”走的与众不同之路

网络图片 媒体最新报道,她被誉为“最甜港姐”,曾是TVB炙手可热的当红花旦,却在最当红的时候选择急流勇退。 她不是退圈去相夫教子,而是读书深造,成为一名专业律师。 前不久,又有消息传出,明年…

Spring RabbitMQ那些事(2-两种方式实现延时消息订阅)

目录 一、序言二、死信交换机和消息TTL实现延迟消息1、死信队列介绍2、代码示例(1) 死信交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 三、延迟消息交换机实现延迟消息1、安装延时消息插件2、代码示例(1) 延时消息交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 …

【C++ Primer Plus学习记录】嵌套循环和二维数组

for循环是一种处理数组的工具。下面进一步讨论如何使用嵌套for循环中来处理二维数组。 C没有提供二维数组类型,但是用户可以创建每个元素本身都是数组的数组。例如,假设要存储5个城市在4年间的最高温度,可以这样声明数组: int m…

Intellij IDEA 的安装和使用以及配置

IDE有很多种,常见的Eclipse、MyEclipse、Intellij IDEA、JBuilder、NetBeans等。但是这些IDE中目前比较火的是Intellij IDEA(以下简称IDEA),被众多Java程序员视为最好用的Java集成开发环境,今天的主题就是IDEA为开发工…

数据库基础教程之数据库的创建(二)

双击打开Navicat,点击:文件-》新建连接-》PostgreSQL 在下图新建连接中输入各参数,然后点击:连接测试,连接成功后再点击确定。 创建数据表   3.1 方法1   3.1.1.双击你的数据库-》双击public-》双击选中表-》右键-》新建表-》常规 3.1.2.设置字段信息   双击选中创建…

Python之Appium 2自动化测试(Android篇)

一、环境搭建及准备工作 1、Appium 2 环境搭建 请参考另一篇文章: Windows系统搭建Appium 2 和 Appium Inspector 环境 2、安装 Appium-Python-Client,版本要求3.0及以上 pip install Appium-Python-ClientVersion: 3.1.03、手机连接电脑,并在dos窗口…