Python 异常处理之try except else

news/2024/11/30 12:45:32/

try ... except 语句具有可选的 else 子句,该子句如果存在,它必须放在所有 except 子句 之后。 它适用于 try 子句 没有引发异常但又必须要执行的代码。 例如:

for arg in sys.argv[1:]:try:f = open(arg, 'r')except OSError:print('cannot open', arg)else:print(arg, 'has', len(f.readlines()), 'lines')f.close()

使用 else 子句比向 try 子句添加额外的代码要好,可以避免意外捕获非 try ... except 语句保护的代码触发的异常。

try 语句的工作原理如下:

  • 首先,执行 try 子句 (try 和 except 关键字之间的(多行)语句)。

  • 如果没有触发异常,则跳过 except 子句,try 语句执行完毕。

  • 如果在执行 try 子句时发生了异常,则跳过该子句中剩下的部分。 如果异常的类型与 except 关键字后指定的异常相匹配,则会执行 except 子句,然后跳到 try/except 代码块之后继续执行。

  • 如果发生的异常与 except 子句 中指定的异常不匹配,则它会被传递到外部的 try 语句中;如果没有找到处理程序,则它是一个 未处理异常 且执行将终止并输出如上所示的消息。

try 语句可以有多个 except 子句 来为不同的异常指定处理程序。 但最多只有一个处理程序会被执行。 处理程序只处理对应的 try 子句 中发生的异常,而不处理同一 try 语句内其他处理程序中的异常。 except 子句 可以用带圆括号的元组来指定多个异常,例如: 

except (RuntimeError, TypeError, NameError):pass


http://www.ppmy.cn/news/41612.html

相关文章

【深一点学习】我用CPU也能跟着沐神实现单发多框检测(SSD),从底层了解目标检测任务的实现过程,需要什么样的方法调用。《动手学深度学习》Yes,沐神,Yes

目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型[1611.06612] RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation (arxiv.org):(1)two-stage方法,如R-CNN系算法…

【JavaWeb】Tomcat的下载及使用

文章目录1.前言2.Tomcat 的下载3.启动Tomcat4.修改Tomcat 的默认端口号5.关闭Tomcat6.部署项目1.前言 Tomcat是Apache软件基金会的一个核心项目, 也是一个开源免费的一个轻量级web服务器.支持servlet/JSP 少量的JavaEE规范,也是我们学习JavaWeb中常用的服务器. Tomcat 也被称为…

react-6 路由 - ts爆红解决

a) 安装路由库 5 版本的 //下载router npm i react-router-dom5//下载去除 路径报错的插件 npm i --save-dev types/react-router-dom 开启配置 允许导入:tsx:因为项目是基于TS的 b) 相关组件 路由管理组件 BrowserRouter 使用 HTML5 历史记录 API…

NumPy 初学者指南中文第三版:11~14

原文:NumPy: Beginner’s Guide - Third Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 十一、玩转 Pygame 本章适用于希望使用 NumPy 和 Pygame 快速轻松创建游戏的开发人员。 基本的游戏开发经验会有所帮助,但这不是必需的。 您将学…

【三十天精通Vue 3】第五天 Vue 3指令详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3 文章目录引言一、Vue 3 指令概述1.1 指令的简介1.2 指令的分类1.3 指令的语…

Akka定时任务schedule()方法

Akka定时任务schedule()方法 文章目录Akka定时任务schedule()方法什么是Akka定时任务schedule()方法?如何使用Akka定时任务schedule()方法?如何在actor外部获取Scheduler对象为什么需要提供一个隐式的ExecutionContext对象,用于执行定时任务&…

DNS服务器解析故障处理记录之arp_cache neighbor table overflow

过程背景 收到反馈 dns 解析异常,手动 dig 客户端响应超时: dig test.com ip# 省略部分 ; (1 server found) ;; global options: cmd ;; connection timed out; no servers could be reached过一段时间后 dig 恢复正常,dns 服务在故障过程中…

Delphi TdxBarManager通过代码生成菜单

procedure TForm6.btn1Click(Sender: TObject); var ABar:TdxBar; ABarItem:TdxBarItem; ABarSubItem:TdxBarSubItem; ABarItemLink:TdxBarItemLink; ABarButton:TdxBarButton; begin Self.dxBarManager1.Style:bmsOffice11; //设置样式 bmsFlat|bmsOffice…