python异常之try/else分句

1 python异常之try/else分句

如果try语句代码块未发生异常,则执行else语句代码块,else需要放在except分句后面。

1.1 基本用法

用法

try:# try语句代码块# 执行时可能发生异常的代码块
except ExceptionType:# except语句代码块# 当发生指定类型的异常时执行的代码块
else:# else语句代码块
# 如果没有发生异常,则执行此代码块
finally:# finally语句代码块
# 不管是否发生异常都会执行此代码块

描述

(1) else分句必须出现在except后面,finally的前面;

(2) ExceptionType为可选项,若有则捕获指定异常,若无则捕获全部异常;

(3) 将可能发生异常的语句放在try代码块,并且分别用except指定各自可能发生的异常;

(4) 将“不会发生异常”的语句放在else代码块,避免意外发生异常被except捕获;这的“不会发生异常”是一种预期结果,是一种理想假设;

(5) else分句提高代码的健壮性和可读性;

示例

>>> while True:try:x=input("请输入一个整数:")print('您输入的是:',x)num = int(x)except ValueError:print("输入错误,请输入一个整数!")print('-'*20)else:print("输入正确!")break请输入一个整数:梯阅线条
您输入的是: 梯阅线条
输入错误,请输入一个整数!
--------------------
请输入一个整数:9555
您输入的是: 9555
输入正确!

1.2 else使用举例

如果希望在没有发生异常情况下执行一些代码,则可以使用else语句实现。

1.2.1 处理除数非0

描述

除法运算可能出现除以零的情况,在else分句编写非0代码。

示例

>>> def testesle():try:x=int(input('输入被除数:'))y=int(input('输入除数:'))res=x/yexcept ZeroDivisionError as zde:print('除数不能为0:',zde)else:print('商等于:',res)>>> testesle()
输入被除数:10
输入除数:2
商等于: 5.0
>>> testesle()
输入被除数:10
输入除数:0
除数不能为0: division by zero

1.2.2 处理文件内容

描述

处理文件时可能发生文件不存在打开失败的情况,在else语句编写打开成功的代码。

示例

>>> def testelse(filepath):try:with open(filepath, 'r') as f:content = f.read()except FileNotFoundError as fnfe:print('打开文件失败:',fnfe)else:print(content)
>>> testelse(r'E:\documents\F盘\hello.txt')
hello!python!
>>> testelse(r'E:\documents\F盘\hella.txt')
打开文件失败: [Errno 2] No such file or directory: 'E:\\documents\\F盘\\hella.txt'

1.2.3 处理网络请求

描述

处理网络请求时,可能出现连接超时或服务器错误的异常,在else语句编写请求成功的代码。

示例

>>> def testelse(url):import requeststry:res=requests.get(url)res.raise_for_status()except requests.exceptions.RequestException as e:print('打开url失败:',e)else:print(res.status_code)>>> testelse(r'https://www.baidu.com/')
200
>>> testelse(r'https://www.9555.com/')
打开url失败: HTTPSConnectionPool(host='www.9555.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1122)')))

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

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

相关文章

利用淘宝获得商品详情 API:提升电商平台的用户体验

一、引言 随着电子商务的快速发展,电商平台之间的竞争日益激烈。为了在竞争中脱颖而出,电商平台需要不断提升用户体验,提高用户满意度和忠诚度。淘宝获得商品详情 API 的出现,为电商平台提供了一个重要的工具,可以帮助…

WebGL开发三维解剖学应用

开发基于 WebGL 的三维解剖学应用通常涉及以下步骤。这些步骤包括创建三维模型、整合交互性、优化性能等,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.三维模型创建: 首先&#xff0…

智能优化算法应用:基于白冠鸡算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于白冠鸡算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于白冠鸡算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.白冠鸡算法4.实验参数设定5.算法结果6.参考文…

vue proxy代理 和 Nginx 配置跨域

vue.config.js文件中配置的代理: devServer: {port: 9095,// open: true, // 配置项目在启动时自动在浏览器打开proxy: {/yh: { // /api是代理标识,一般是每个接口前的相同部分target: "http://192.168.5.58:8002", // 请求地址,一…

4.3【共享源】克隆实战开发之截屏(一)

一,Screen截屏介绍 Screen的截屏是指从源读取像素,然后复制到缓冲区。然后可以根据需要操纵缓冲区;它可以简单地写入文件,也可以在其他窗口或显示器中使用。 Screen API从源中读取像素,并将其复制到提供的缓冲区中以捕获截屏。缓冲区可以是pixmap或窗口缓冲区,但必须设…

众和策略:美股全线上涨 中概股大涨

当地时间12月21日,欧洲股市全线下跌,英国富时100指数、法国CAC40指数、德国DAX指数均小幅下跌。美国通胀降温,美股商场三大指数尾盘飙升,纳斯达克指数、标普500指数均涨逾1%,大型科技股多数上涨,特斯拉涨近…

机器人运动速度与接触力

当机器人以较快的速度移动时,其与周围环境的接触力可能会增加。这是因为机器人快速移动时,其与环境的相互作用时间较短,导致接触力的瞬间增大。 然而,具体的接触力大小还受到其他因素的影响,如机器人的负载、环境条件…

SoapUI、Jmeter、Postman三种接口测试工具的比较分析!

前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下。本文从多个方面对接口测试的三款常用工具进行比较分析,以便于在特定的情况下选择最合适的工具,或者使用自己编写的工具…

4_js函数的进阶与常用对象的使用

day04_js函数的进阶与常用对象的使用 1. 作用域 作用域:指的就是变量的有效范围 2. 什么是作用域链 作用域链:在访问变量的时候是按照就近原则 3. 简单的理解类和对象 3.1 对象的相关概念 从用户登录的角度理解为什么需要对象 我们为什么要使用对…

React + valtio 响应式状态管理

Valtio 是一个很轻量级的响应式状态管理库。valtio 让数据管理在 React 和原生 JS (Vanilla) 中变得更加简单的一个库,它类似于 Vue 的数据驱动视图的理念,使用外部状态代理去驱动 React 视图来更新。 一、状态管理库 dispatch 流派(单向数据流-中心化管…

Flink 运行时[Runtime] 整体架构

一、基本组件栈 在Flink整个软件架构体系中,同样遵循着分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建Flink应用提供了丰富且友好的接口。从下图中可以看出整个Flink的架构体系基本上可以分为三层,由上往下依次是 …

MT6739/MTK6739安卓核心板规格参数_MTK平台核心板定制

安卓核心板采用联发科 MT6739 平台开发设计,搭载开放的智能 Android 操作系统。它集成 GPU PowerVR GE8100 570MHz,集成了 BASEBAND、UMCP、PMU 等核心器件,支持 2.4G5G 双频 WIFI(可支持 1*1 MIMO)、BLUETOOTH 近距离无线传输技术&#xff0…

绩效面谈-大公司提高绩效的必杀技

绩效面谈是一种人力资源管理工具,旨在评估员工绩效并为其提供反馈。其意义包括: 为提高绩效制定具体的目标和计划。通过与员工讨论绩效表现,管理人员和员工可以确定明确的目标和方向,以实现更高的绩效水平。 帮助员工理解工作环…

【组合数学】Pólya 计数理论

目录 1. 引言2. 置换群3. Burnside 引理共轭类k 不动置换类Burnside 引理 4. Plya 计数定理4.1 对点着色问题4.2 对面着色问题4.3 重复球放盒子 1. 引言 Plya 计数理论是数学中的一个分支,主要研究的是对称性在组合计数问题中的应用。该理论以匈牙利数学家乔治波利…

关于使用libnet时性能下降的问题分析

Libnet是一个用于构建和注入网络数据包的便携式框架。它提供了在IP层和链路层创建数据包的功能,以及一系列辅助和补充功能。Libnet非常适合编写网络工具和网络测试代码。一些使用libnet的项目包括arping、ettercap、ipguard、isic、nemesis、packit、tcptraceroute和…

服务器加装了14T硬盘,显示不出来,戴尔R730阵列卡配置阵列RAID0

戴尔H730阵列卡配置阵列RAID0,1,5,10_哔哩哔哩_bilibili 然后依据下面的视频进行操作,ctrlr,选raid0 戴尔H730阵列卡配置阵列RAID0,1,5,10_哔哩哔哩_bilibili

myspl左外连

myspl使用左外连接查询所有学生的姓名及选修的课程名称和分数,没有选课的学生姓 名也要显示。 假设我们有两个表,一个是学生表(students),包含学生的学号和姓名,另一个是选课表(courses),包含学生的学号、课程名称和分…

拾捌[18],ROI区域,函数ReduceDomain/WriteRegion/ReadRegion

函数ReduceDomain 函数功能 图像区域定义域缩减,减小图像处理区域以缩短时间,结果图的Row/Column和原图一致。 C形式 LIntExport void ReduceDomain( const HObject& Image, const HObject& Region, HObject* ImageReduced);//参数1:输入图…

【项目问题解决】% sql注入问题

目录 【项目问题解决】% sql注入问题 1.问题描述2.问题原因3.解决思路4.解决方案1.前端限制传入特殊字符2.后端拦截特殊字符-正则表达式3.后端拦截特殊字符-拦截器 5.总结6.参考 文章所属专区 项目问题解决 1.问题描述 在处理接口入参的一些sql注入问题,虽然通过M…

Ubuntu22.04安装python2

Ubuntu 20.04是继Ubuntu 18.04 LTS之后的下一个长期支持(LTS)版本,从Ubuntu 20.04开始系统不再预装python2。 如果我们有一些老旧的代码需要运行,可以在新版的Ubuntu系统上自行安装python2。 安装命令: sudo apt install python2查看pytho…