Ciallo~(∠・ω・ )⌒☆第二十四篇 python 异常处理

news2024/11/26 0:57:38

在Python中,异常处理是一种处理代码中发生错误的机制。它允许我们在运行时捕获和处理异常,以避免程序终止并提供错误信息。

一、try-except语句

try块用于包含可能发生异常的代码,而except块用于捕获和处理异常。一旦try块中的代码引发了异常,程序会跳转到与之相匹配的except块,并执行其中的代码。 

try:
    # 可能引发异常的代码
except ExceptionType:
    # 异常处理代码

二、except语句

可以带有一个或多个异常类型的参数,以匹配特定类型的异常。如果没有指定异常类型,except语句将捕获所有类型的异常。

try:
    # 可能引发异常的代码
except (ExceptionType1, ExceptionType2):
    # 处理 ExceptionType1 或 ExceptionType2 类型的异常
except ExceptionType3:
    # 处理 ExceptionType3 类型的异常

三、else语句

可以将else语句放在try-except语句之后,用于处理在没有异常发生时要执行的代码。

try:
    # 可能引发异常的代码
except ExceptionType:
    # 异常处理代码
else:
    # 没有异常时执行的代码

四、finally语句

可以将finally语句放在try-except语句之后,无论是否发生异常,都会执行其中的代码。通常用于释放资源或进行清理操作。

try:
    # 可能引发异常的代码
except ExceptionType:
    # 异常处理代码
finally:
    # 无论是否发生异常都会执行的代码

五、raise语句

用于手动引发异常。可以指定异常类型和异常信息。

raise ExceptionType("异常信息")

可以根据具体的需求和代码逻辑,在合适的地方使用异常处理来处理错误和异常情况,从而使程序更加健壮和可靠。

input_str = input("输入数字:")
input_str2 = input("输入第二个数字:")
try:
    input_values = int(input_str)
    input_values2 = int(input_str2)
    print(f"你输入的两个数字相除是{input_values / input_values2}")
except ValueError as e:
    print(f"值转换错误")
except ZeroDivisionError as e:
    print(f"除数为0")
except Exception as e:
    print(f"输入有误,类型转换失败", e)
else:
    print(f"没有发现异常")
finally:
    print(f"有没有异常都会执行")

print("程序正常结束")

输出:

输入数字:20
输入第二个数字:0
除数为0
有没有异常都会执行
程序正常结束

除此之外,还可以自己创建异常类,用于在自己开发项目时使用自己的异常类进行捕获:

class LTOne(Exception):
    def __init__(self, msg):
        super().__init__(msg)


while True:
    input_str = input("输入一个正整数:")
    try:
        input_value = int(input_str)
        try:
            if input_value < 1:
                raise LTOne("小于1")
        except LTOne as e:
            print(f"输入的数字小于1,请重新输入")
        else:
            print("奇数" if input_value % 2 else "偶数")

    except ValueError as e:
        print(f"输入的不能转为数字请重新输入")

 输出:

输入一个正整数:0
输入的数字小于1,请重新输入

 

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

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

相关文章

8月21日笔记

Frp Frp(Fast e Reverse ) Proxy) 是一款简单&#xff0c;好用&#xff0c;稳定的隧道工具。Frp 使用 Go语言开发&#xff0c;支持跨平台&#xff0c;仅需下载对应平台的二进制文件即可执行&#xff0c;没有额外依赖。它是一款高性能的反向代理应用&#xff0c;可以轻松地进行…

机器人蓝牙通信绕坑

为机器人添加手机和语音控制是很有必要的&#xff0c;其中蓝牙通信有很多的坑。 一个是蓝牙模块版本&#xff0c;流行的2.0&#xff0c;4.0&#xff0c;5.0一旦买错&#xff0c;会十分麻烦&#xff0c;如果不懂编程&#xff0c;无法和板子通信&#xff0c;又连不上电脑和手机&…

用户画像中挖掘类标签的生产过程

背景 在用户画像中&#xff0c;除了用户的性别年龄等基础标签&#xff0c;我们还可以使用机器学习算法挖掘一些标签&#xff0c;比如用户购买意向等标签 技术方案 挖掘类标签的生产一般有以下的流程图&#xff0c;主要包括特征选择&#xff0c;也就是选择用户的哪些行为作为…

GATK AlleleList接口介绍

在 GATK&#xff08;Genome Analysis Toolkit&#xff09;中&#xff0c;AlleleList 接口是一个用来表示等位基因&#xff08;alleles&#xff09;列表的接口。Allele 是遗传学中用于表示某一特定基因座的不同形式的一个基本单位。AlleleList 接口定义了一些操作&#xff0c;使…

跨境电商系统架构分析

跨境电商系统是一个复杂而庞大的系统工程&#xff0c;涵盖了订单管理、支付管理、物流管理、报关管理、产品管理、跨境营销和数据分析等多个功能模块。这些模块相互协作&#xff0c;共同支撑起跨境电商的全球化运营。 订单管理&#xff1a;负责处理用户的订单信息&#xff0c;…

零基础学习Python(六)

1. 元类的应用 使用元类给对象添加一个固有属性author: 对类名进行限定&#xff0c;要求类名必须是大写字母开头&#xff1a; class MetaC(type):def __init__(cls, name, bases, attrs):if not name.istitle():raise TypeError("类名必须是大写字母开头~")return …

想提升网站排名?试试轮换IP

在竞争激烈的互联网环境中&#xff0c;提高网站排名是每个中小型网站主的共同目标。其中&#xff0c;轮换IP是一种不容忽视的优化工具。虽然听起来可能有些陌生&#xff0c;但轮换IP却能在提升网站排名方面发挥关键作用。本文将深入探讨轮换IP如何帮助中小型网站提升搜索引擎排…

南大-ICS2021 PA1~PA2.2 学习笔记记录

文章目录 代码github网址ICS2021其他博客基础设施: 简易调试器表达式求值词法分析递归求值如何测试自己的代码 监视点的实现扩展表达式求值的功能实现监视点 阅读源码 2译码执行用RTL表示指令行为实现常用的库函数实现常用的库函数 代码github网址 https://github.com/xiao-ta…

一主一从读写分离

目录 介绍 一主一从 原理 准备 配置主从复制 验证主从复制 一主一从读写分离 安装MyCat schema.xml配置 server.xml配置 测试 介绍 读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作&#xff0c;从数据库提供读操作&am…

Springboot中多线程数据库操作下的事务一致性问题的解决方案

文章目录 1 代码实现1.1 正常情况1.2 异常情况总结 1 代码实现 1.1 正常情况 我们采用手动开启事务的方式 public void add(CountDownLatch countDownLatch) {executor.submit(() -> {TransactionStatus transaction dataSourceTransactionManager.getTransaction(transa…

【HTML】HTML学习之引入CSS样式表

1、CSS样式规则 选择器{属性1:属性值1; 属性2:属性值2; 属性3:属性值3;}2、HTML引入CSS样式表 2.1、行内式 行内式也称为内联样式&#xff0c;是通过标签的style属性来设置元素的样式&#xff0c;其基本语法格式如下: <标签名 style"属性1:属性值1; 属性2:属性值2;…

Proxy/Skeleton

设计模式之&#xff08;十二&#xff09;代理模式_skeleton proxy 模式-CSDN博客 在RMI中&#xff0c;客户端可以通过一个桩&#xff08;Stub&#xff09;对象与远程主机上的业务对象进行通信&#xff0c;由于桩对象和远程业务对象接口的一致&#xff0c;因此对于客户端而言&am…

Maven的一些相关知识【重修】《包括私服搭建!》

mvnrepository.com Maven 下载jar包的位置&#xff01; 【该部分有教程】 这是什么nb代码投稿视频-这是什么nb代码视频分享-哔哩哔哩视频

python之matplotlib (6 等高线和热力图)

等高线 import numpy as np import matplotlib.pyplot as pltdef f(x,y):return (1-x/2x**5y**3)*np.exp(-x**2-y**2) n256 xnp.linspace(-3,3,n) yx X,Ynp.meshgrid(x,y) plt.contourf(X,Y,f(X,Y),8,alpha0.75,cmapviridis) plt.colorbar() Cplt.contour(X,Y,f(X,Y),8,colors…

第64期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

免费图形化nginx管理工具nginxWebUI

nginxWebUI是一款图形化管理nginx配置得工具, 可以使用网页来快速配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, 静态html服务器, ssl证书自动申请、续签、配置等, 配置好后可一建生成nginx.conf文件, 同时可控制nginx使用此文件进行启动与重载, 完…

Linux基础软件-软件安装

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux进阶部分又分了很多小的部分,我们刚讲完了Linux日常运维。讲的那些东西都算是系统自带的&#xff0c;但是Linux作为一个…

mklink 命令详解

mklink 命令详解 在命令提示符中输入 mklink 可以查看相关的运行命令。 创建符号链接。MKLINK [[/D] | [/H] | [/J]] Link Target/D 创建目录符号链接。默认为文件符号链接。/H 创建硬链接而非符号链接。/J 创建目录联接。Link 指定新的符号链接名称。Targ…

前端3d动画-----平移 transform: translate3d()

必须加这个属性&#xff1a;transform-style: preserve-3d; perspective: 900px; 设置了景深才能感到近大远小的感觉 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…

CTF中的换表类Crypto题目

目录 [安洵杯 2019]JustBase[SWPUCTF 2021 新生赛]traditional字符替换解密 [BJDCTF 2020]base??字符替换 --》 base64解密 [安洵杯 2019]JustBase VGhlIGdlbxvZ#kgbYgdGhlIEVhcnRoJ#Mgc#VyZmFjZSBpcyBkb!pbmF)ZWQgYnkgdGhlIHBhcnRpY#VsYXIgcHJvcGVydGllcyBvZiB#YXRlci$gUHJ…