python--异常处理

异常处理

例一:

try:

                #可能出现异常代码

except:

                #如果程序异常,则立刻进入这儿

[finally:

                #不管是否捕获异常,finally语法快必须要执行!!!

                #资源关闭,等各种非常重要的操作,必须放在finally中执行

例二:

try:

                #******

finally:

                #主要目的是为了利用finally的特性,将必须要执行的代码放在这里执行

例三:

自定义异常处理类:

                如果不够我们使用时,我们可以自定义异常类

异常抛出:自己认为的抛出异常对象,就是希望调用者可以直接让捕获,从而传递错误信息

异常处理:

def division(x, y):     #division除数res = 0try:res = x / ynum3 = int(input("请输入一个整数:"))print(num3 + x + y)except ZeroDivisionError as e:print(e)print("对不起,除数不能为0")except ValueError as e:print(e)num3 = int(input("请输入整数"))print(num3 + x + y)except Exception as e:print("其他异常")finally:print("finally语法块里的,必须要执行")return resif __name__ == '__main__':num1 = int(input("请输入被除数"))num2 = int(input("请输入除数"))result = division(num1, num2)print(result)print("程序计算结束,继续向下运行")
请输入被除数8
请输入除数4
请输入一个整数:5
17
finally语法块里的,必须要执行
2.0
程序计算结束,继续向下运行Process finished with exit code 0

异常抛出: 

class MyException(Exception):def __init__(self, msg):Exception.__init__(self,msg)def login(username, password):if username != "admin":raise MyException("用户名不存在")if password != "123456":raise MyException("用户密码错误")if __name__ == '__main__':try:login("admin", "1234")except MyException as e:print(e)
用户密码错误Process finished with exit code 0

 

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

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

相关文章

HarmonyOS实战开发-如何使用 geolocation 实现获取当前位置经纬度

介绍 本示例使用 geolocation 实现获取当前位置的经纬度,然后通过 http 将经纬度作为请求参数,获取到该经纬度所在的城市。通过 AlphabetIndexer 容器组件实现按逻辑结构快速定位容器显示区域。 效果预览 使用说明 1.进入主页,点击国内热门城市,配送地址会更新为选择的城…

【Erlang】【RabbitMQ】Linux(CentOS7)安装Erlang和RabbitMQ

一、系统环境 查版本对应,CentOS-7,选择Erlang 23.3.4,RabbitMQ 3.9.16 二、操作步骤 安装 Erlang repository curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash安装 Erlang package s…

CAXA电子图版2019版 下载地址及安装教程

CAXA电子图板是一款由国内软件公司CAXA开发的专业CAD(计算机辅助设计)软件。它主要用于绘制和编辑各种类型的二维图纸和工程图纸,广泛应用于建筑、机械、电气和电子等行业。 CAXA电子图板具有以下主要功能和特点: 二维绘图&…

Godot 常用UI+布局容器简单介绍

文章目录 前言相关链接Canvasitem:画布Control:UI布局基类Container:布局容器基类AspectRatioContainer:伸缩居中布局BoxContainer:盒子布局ColorPicker:取色器 CenterContainer:不伸缩居中FlowContainer&a…

Java 那些诗一般的 数据类型 (下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接…

【RAG实践】Rerank,让大模型 RAG 更近一步

RAGRerank原理 上一篇【RAG实践】基于LlamaIndex和Qwen1.5搭建基于本地知识库的问答机器人 我们介绍了什么是RAG,以及如何基于LLaMaIndex和Qwen1.5搭建基于本地知识库的问答机器人,原理图和步骤如下: 这里面主要包括包括三个基本步骤&#…

MySQL数据库在Windows和Linux中各种日志的默认路径

1. 二进制日志(Binary Log) 在Linux系统中,二进制日志的默认路径通常为: /var/lib/mysql/hostname-bin.log 其中hostname是你的服务器主机名。如果没有特别配置,日志名可能是mysql-bin.log。 在Windows系统中&…

3.1k Star的特斯拉数据伴侣神器

微信公众号:[开源日记],分享10kStart的优质开源项目。 TeslaMate 适用于你的 Tesla 的功能强大的自托管数据记录器。 用 Elixir 编写数据存储在 Postgres 数据库使用 Grafana 进行可视化和数据分析车辆数据发布到本地 MQTT Broker GitHub数据 3.1k stars121 watching458 forks…

非关系型数据库Redis部署与常用命令

前言 Redis是一个高性能的开源内存数据库,常用于缓存、会话存储和实时数据处理,它是一款非关系型数据库。在生产环境中,Redis通过将数据存储在内存中以及支持多种数据结构,提供了快速的读写能力,并且可通过持久化功能…

龙晰系统运维相关笔记

一、硬盘分区、格式化及挂载(可直接查看另一篇文章硬盘分区格式化,或参考以下命令) #查看硬盘设备号fdisk -lfdisk /dev/vdb#以下为输入fdisk /dev/vdb命令后可以使用的命令行m #查看选项n #新建分区p 新建主分区1 新建1号分区2048 输入初始磁…

laravel如何通过DB获取一条数据的指定字段并转成数组

在 Laravel 中,如果你想要通过原生数据库查询构建器(DB facade)获取一条数据的指定字段,并将其转换为数组,你可以这样做: 首先,使用 select 方法来指定你想要获取的字段,然后使用 w…

L1-020 帅到没朋友分数 (20)

一、题目要求 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。 输入格式: 输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行…

2023一个前端人的杂谈

酒香也怕巷子深 年底提车,回河北过年,一路总是旅游的牌子,后来去满城滑雪,随拍了几张照片,才更加感受河北的魅力。 感觉仅仅是这一抹黄昏,就让这一行物超所值了,原来那句宣传语所言非虚:这么近,那么美,周末到河北,然而我认为实际的好处,可能不止如此。 作为一个出…

记录一次hss不能防护主机的问题

场景:hss的控制台显示不在防护中,其他云主机并没有这个情况。 故障发生的时间是昨天下午15点半左右,运维同事做了重启网卡的操作。service network restart 排查分析: 于是仔细的查看日志,发现报错如下&#xff1a…

SpringBoot学习之Kibana下载安装和启动(Mac版)(三十二)

一、简介 Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。 …

ChatGPT与生成式AI:教育领域内新的浪潮与挑战

随着ChatGPT和其他生成式AI技术,如GPT-3.5、GPT-4的出现,我们正见证教育领域一场前所未有的变革浪潮。这些技术不仅推动了教育方式的进步,也为学习者带来了全新的机遇和挑战。 NO.1教育变革的新浪潮 生成式AI技术,特别是ChatGPT&…

FPGA(Verilog)实现按键消抖

实现按键消抖功能: 1.滤除按键按下时的噪声和松开时的噪声信号。 2.获取已消抖的按键按下的标志信号。 3.实现已消抖的按键的连续功能。 Verilog实现 模块端口 key_filter(input wire clk ,input wire rst_n ,input wire key_in , //按下按键时为0output …

[C++][C++11][六] -- [线程库]

目录 1.thread类的简单介绍2.线程对象的构造方法1.无参构造2.带参构造3.移动构造4.注意 3.thread提供的成员函数4.获取线程id5.线程函数的参数问题1.指针2.借助std::ref函数3.借助lambda表达式 6.join和detach1.join()2.detach() 7.[mutex](http://在C11中,Mutex总共…

无忧网络验证系统 getInfo SQL注入漏洞复现

0x01 产品简介 无忧网络验证是一套安全稳定高效的网络验证系统,基于统一核心的通用互联网+信息化服务解决方案,是为软件作者设计的一套完整免费的网络验证体系。可以为开发的软件增加收费授权的功能,让作者开发的软件可以进行销售、充值、登陆等操作,并且提供防破解验证功能…

Go 中无缓冲通道与容量为1的缓冲通道的区别

作为学Go的菜鸟,之前我以为这两个应该是同一个东西,以为无缓冲通道是缓冲通道容量为1的一种特殊情况。然鹅,这俩货根本不是同一个东西。 无缓冲通道 无缓冲通道也称为同步通道,发送操作会阻塞,直到另一个 goroutine …