首页 > 其他分享 >多组异常处理

多组异常处理

时间:2023-07-22 10:33:24浏览次数:30  
标签:多组 代码 except try 处理 finally print 异常

语法

 1 try:
 2     # 可能引发异常的代码
 3 except ExceptionType1:
 4     # 处理第一种异常的代码
 5 except ExceptionType2:
 6     # 处理第二种异常的代码
 7 except:
 8     # 处理其他所有异常的代码
 9 finally:
10     # 无论是否发生异常,都会执行的代码

在上述语法中,ExceptionType1ExceptionType2是具体的异常类或异常类的基类。你可以根据需要定义和处理不同类型的异常(注意顺序)。

try块中的代码可能引发的异常会被逐个匹配到相应的except块。如果发生了与except块中指定的异常类型匹配的异常,就会执行该except块中的代码。如果没有匹配到任何except块,异常将传播到上一级调用者或全局范围。

最后,finally块中的代码始终会执行,无论是否发生了异常。它通常用于释放资源或执行清理操作。

示例

 1 try:
 2     num1 = int(input("请输入第一个数字: "))
 3     num2 = int(input("请输入第二个数字: "))
 4     result = num1 / num2
 5     print("结果:", result)
 6 except ValueError:
 7     print("请输入有效的整数")
 8 except ZeroDivisionError:
 9     print("除数不能为零")
10 except Exception as e:
11     print("发生了未知异常:", str(e))
12 finally:
13     print("程序结束")

 

 使用一个关键字except捕获多个异常(不推荐)

 1 '''
 2 当我们想要使用一个except语句来捕获多个异常时,可以将这些异常类型作为元组传递给except关键字。
 3 这样,如果发生的异常类型与元组中的任何一个匹配,就会执行相应的代码块。
 4 语法:
 5     try:
 6         # 可能引发异常的代码
 7     except (ExceptionType1, ExceptionType2, ...):
 8         # 处理多个异常的代码
 9 (ExceptionType1, ExceptionType2, ...)是一个包含多个异常类型的元组。当发生的异常类型与元组中的任何一个匹配时,就会执行相应的except块中的代码
10 '''
11 
12 try:
13     num1 = int(input("请输入第一个数字: "))
14     num2 = int(input("请输入第二个数字: "))
15     result = num1 / num2
16     print("结果:", result)
17 except (ValueError, ZeroDivisionError):
18     print("输入无效或除数不能为零")
19 except Exception as e:
20     print("发生了未知异常:", str(e))
21 finally:
22     print("程序结束")

 

标签:多组,代码,except,try,处理,finally,print,异常
From: https://www.cnblogs.com/allenxx/p/17572946.html

相关文章

  • 多组异常处理基础
    1.常见的内置异常类  1.1Exception1try:2#一些代码3exceptSpecificException:4#处理特定的异常类型5exceptAnotherException:6#处理另一种异常类型7exceptExceptionase:8#捕获其他未处理的异常,并进行适当处理9print(f"捕......
  • 串口AT与数据的混杂接收处理
    linux串口AT与数据的混杂接收处理;fdcom_rs232为串口句柄conf.rs232.baudrate为实际使用的波特率buf_rs232为串口数据缓存数组buf_rs232_len为串口数据缓存实际长度LOG_ERROR为自定义错误打印宏voidrecv_at_rs232(void){ charbuf[1024];//根据实际需要分配大小 intl......
  • (建议收藏)如何处理 openGauss 上遇到的慢 SQL
    (建议收藏)如何处理openGauss上遇到的慢SQL发布于 2022-12-0714:19:154460举报大家好,我是JiekeXu,很高兴又和大家见面了,今天和大家一起来学习在openGauss上遇到慢SQL该怎么办?在数据库的日常使用中,难免会遇到慢SQL,遇到慢SQL本身并不可怕,困难......
  • 异常基础
    1.什么是异常跟java异常(Exception)一样,都是指在程序执行过程中发生的错误或异常情况。当程序出现异常时,会中断正常的执行流程,并转而执行异常处理的逻辑。2.什么情况下触发异常异常可以由多种原因引起,例如:语法错误:代码不符合Python语法规则。运行时错误:在代码执行期间发生了......
  • 欧姆龙plc串门通讯设置转以太网通讯处理器
    捷米特JM-ETH-CX转以太网通讯处理器采用模块化设计,不占用PLC编程口,即上位机软件通过以太网对PLC数据监控的同时,触摸屏可以通过复用接口X2与PLC进行通讯 欧姆龙PLC的通讯口上一般都会插有触摸屏,用以监控PLC的实时数据;而现在,由于项目需求,需要在不影响原触摸屏的通讯......
  • url中的参数带有&连接符号处理
     keyword:url参数 连接符  %26代替&,  %3F代替?   接受页面不需要改动任何, &的asc码为%26. ?的asc码为%3F. 如:toUrlProject.action?url=nonTopicDetailPlanTask.action%3FprojectInfo.id='+@moduleId+'%26menuId=26......
  • java线程超时处理
    Java线程超时处理引言在Java中,线程是一种轻量级的执行单元,用于并发执行代码。在某些情况下,我们可能希望设置一个超时时间来控制线程的执行时间,以避免长时间的阻塞或无限期的等待。本文将介绍如何在Java中处理线程超时的方法,并提供相应的代码示例。方法一:使用Thread.join(longti......
  • TCP/IP协议模型的五层处理流程简介
    TCP/IP是一种分层模型,它将通信协议分解为五个层次,每个层次都有特定的功能和任务。以下是TCP/IP五层的处理流程:应用层(ApplicationLayer):这是TCP/IP模型的最上层,负责处理应用程序的请求和数据。在该层,应用程序(例如浏览器、电子邮件客户端等)与用户进行交互,并将数据传递给下一层。......
  • Luminar Neo - AI图片编辑处理软件mac/win版
    LuminarNeo是一款由Skylum公司开发的全新图像处理软件,它提供了强大的功能和创意工具,使摄影师能够在后期处理中获得无限的创作自由。→→↓↓载LuminarNeomac/win版 LuminarNeo的主要特点和功能。人工智能增强:LuminarNeo利用先进的人工智能技术,提供了自动智能增强功能......
  • 图片预加载需要token认证的地址处理
    1.添加函数修改img的属性;/****@param{*}idName传入的id,获取改img的dom,添加相应的数学*/exportconstproxyImg=(idName)=>{constimg=document.getElementById(idName||'img');consturl=img.getAttribute('authsrc');constrequest=new......