Python处理异常用操作笔记

news2024/12/23 2:54:41

在编写Python程序时,我们经常会遇到各种异常、错误等。对于异常处理的常用操作,记录如下:

1、try-except

try-except语句是Python中最常用的异常处理结构。它的基本语法如下:

try:
    # 尝试执行的代码块
except ExceptionType:
    # 当发生指定类型的异常时执行的代码块

其中,ExceptionType是可选的,表示要捕获的异常类型。如果不指定,则默认捕获所有异常。

例如,我们尝试打开一个不存在的文件:

try:
    file = open("test.txt", "r")
except FileNotFoundError:
    print("文件不存在")

图片

这个例子中,使用try-except语句捕获了FileNotFoundError异常,并输出了一条提示信息。

2、finally

finally子句用于在异常处理结束后执行一些必要的清理操作。无论是否发生异常,finally子句中的代码都会被执行。其基本语法如下:

try:
    # 尝试执行的代码块
except ExceptionType:
    # 当发生指定类型的异常时执行的代码块
finally:
    # 无论是否发生异常,都会执行的代码块

例如,我们尝试打开一个文件,并在最后关闭文件:

try:
    file = open("test.txt", "r")
except FileNotFoundError:
    print("文件不存在")
finally:
    print("无论是否发生异常,都会执行的代码块")

在这个例子中,无论是否发生异常,都会执行finally之后的语句。

图片

3、raise

raise语句用于主动抛出异常。我们可以自定义异常类型和异常信息。其基本语法如下:

raise ExceptionType("异常信息")

例如,我们定义一个函数,当输入的值小于0时抛出异常:

def test(x):
    if x < 0:
        raise ValueError("输入值不能小于0")
    return x * x
test(-1)

图片

在这个例子中,当输入的值小于0时,我们使用raise语句抛出了一个ValueError异常,并附带了一条提示信息。

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

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

相关文章

多人在线像素涂鸦网页源码

多人在线像素涂鸦网页源码node.js项目&#xff0c;100100的像素格画布&#xff0c;可供多人在线涂鸦&#xff0c;画布内容实时刷新。 源码下载:多人在线像素涂鸦网页源码.zip 包含完整搭建教程 仍有不完善的地方&#xff1a; 1.没有限制一分钟内的涂鸦次数&#xff0c;这会…

大模型日报|20 篇必读的大模型论文

大家好&#xff0c;今日必读的大模型论文来啦&#xff01; 1.智谱AI 发布视频大模型 CogVideoX 技术报告 Sora 发布近半年之后&#xff0c;业内仍未出现一个开源的、满足商业级应用需求的视频生成模型。 今天&#xff0c;智谱AI 便推出了首个开源的商用级视频生成模型——Co…

Ubuntu 20.04 中安装 Nginx (通过传包编译的方式)、开启关闭防火墙、开放端口号

文章目录 前言一、安装包下载二、上传服务器并解压缩三、依赖配置安装四、生成编译脚本五、编译六、查看是否编译完成七、开始安装八、查看是否安装成功九、设置为开机自启动 前言 参考大佬文章并在基础上做了点修改&#xff0c;发篇文章记录下 防止下次遇到。 参考文章&#…

软件设计之CSS

软件设计之CSS 【狂神说Java】CSS3最新教程快速入门通俗易懂 学习内容&#xff1a; 软件开发技能点参照&#xff1a;软件开发&#xff0c;小白变大佬&#xff0c;这套学习路线让你少走弯路是认真的&#xff0c;欢迎讨论 软件开发技能点顺序参照&#xff1a;Java学习完整路线…

【Java】多线程精简笔记

进程和线程 进程是系统资源分配的基本单位&#xff0c;线程是系统调度的基本单位进程是程序正在运行的实例&#xff0c;里面包含着线程进程有独立的内存和资源&#xff0c;线程共用内存&#xff08;工作内存独有&#xff0c;主内存共用&#xff09;和资源线程比进程更加轻量&am…

Ubuntu防火墙相关命令

在Ubuntu系统中&#xff0c;启用防火墙可以通过ufw&#xff08;Uncomplicated Firewall&#xff09;来完成。以下是如何启用和配置ufw的步骤&#xff1a; 1.安装ufw&#xff08;如果尚未安装&#xff09; sudo apt update sudo apt install ufw2Ubuntu启用防火墙ufw&#xff1…

代码签名证书申请教程

代码签名证书的申请流程可以概括为以下几个步骤&#xff0c;这些步骤是目前可申请代码签名证书的几个云服务厂商的大致流程&#xff1a; 首先了解一下代码签名证书的种类&#xff1a; 标准代码签名证书&#xff08;一般泛指OV代码签名证书&#xff09;&#xff1a;适用于个人…

6 大推荐给开发者的无代码工具

在不断发展的软件开发领域&#xff0c;无代码工具正迅速普及。 最初&#xff0c;这些工具是为非技术背景的业务用户设计的&#xff0c;而如今&#xff0c;它们对开发者来说也同样不可或缺。 无代码工具结合了效率、灵活性和创新性&#xff0c;让开发者能够在无需编写传统代码…

Windows环境部署AI智能聊天应用LobeChat并实现远程对话实操流程

目录 ​编辑 前言 1. LobeChat对我们有哪些帮助? 2. 本地安装LobeChat 3. 如何使用LobeChat工具 4. 安装Cpolar内网穿透 5. 实现公网访问LobeChat 6. 固定LobeChat公网地址 前言 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊Window…

RTSP系列一:RTSP协议介绍

RTSP系列&#xff1a; RTSP系列一&#xff1a;RTSP协议介绍-CSDN博客 RTSP系列二&#xff1a;RTSP协议鉴权-CSDN博客 RTSP系列三&#xff1a;RTP协议介绍-CSDN博客 RTSP系列四&#xff1a;RTSP Server/Client实战项目-CSDN博客 目录 一、RTSP协议介绍 二、RTSP信令 三、…

梅特勒金属探测器检测仪维修SAFELINE V3-QF1

梅特勒L系列和HDS管道式金属检测机主要用于食品行业&#xff0c;检测液态或者粘稠的产品&#xff0c;因为这类产品都是通过管道传输。 梅特勒HDS管道式系统为肉食加工和火腿类产品的检测需求度身制造,可与多种填充机联接,能够方便的介入各类加工生产线。 梅特勒T和ST系列金属检…

【091】基于SpringBoot+Vue实现的超市管理系统

系统介绍 基于SpringBootVue实现的超市管理系统 基于SpringBootVue实现的超市管理系统采用前后端分离的架构方式&#xff0c;系统分为管理员、员工两种角色&#xff0c;实现了销售管理、人事管理、个人中心、库存管理、会员管理、系统管理、商品管理等功能模块 技术选型 开发…

二十七、【人工智能】【机器学习】- 【数学基础】 之数学要素

目录 前言 数学基础 数学基础进阶 高级数学加减法 高级数学乘法 总结 前言&#xff1a; 在数学的广阔宇宙中&#xff0c;有一颗璀璨的星辰&#xff0c;它既神秘又迷人&#xff0c;这便是复数——一个融合了实数与虚数的世界。复数&#xff0c;用数学语言表示为 CC&#…

dpdk调试

1、gdb调试coredump dpdk的Makefile加上-g编译 ulimit -c unlimited echo "/home/core/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

触发邮件API接口与第三方系统集成的方法?

触发邮件API接口的性能优化策略&#xff1f;如何管理API接口&#xff1f; 触发邮件API接口成为了不可或缺的工具&#xff0c;不仅能自动化邮件发送&#xff0c;还能与第三方系统无缝集成&#xff0c;提高工作效率。AokSend将探讨如何使用触发邮件API接口与第三方系统进行集成的…

自动化与机器人:新时代的驱动力

在现代科技的飞速发展中&#xff0c;自动化与机器人技术已成为推动各行业变革的重要力量。特别是机器人流程自动化&#xff08;RPA&#xff09;和协作机器人&#xff08;Cobot&#xff09;的应用&#xff0c;极大地提升了企业的效率和生产力。本文将深入探讨这两种技术的基本概…

等保测评中的访问控制与用户认证:构建安全的访问管理机制

在当今数字化时代&#xff0c;信息安全已成为企业和组织不可忽视的关键议题。等保测评&#xff0c;作为我国信息安全等级保护制度的重要组成部分&#xff0c;对访问控制与用户认证提出了严格要求&#xff0c;旨在构建安全的访问管理机制&#xff0c;保护信息资产不受未授权访问…

【ARM】SMMU系统虚拟化(2)_转换页表的配置方式boot_code.s

#工作记录# 拖了非常久的页表转换整理&#xff0c;补坑&#xff01;废话不多说开整。 MMU相关的知识点可以参考我之前的博客&#xff0c;这篇博客主要介绍如何在boot_code.s中配置页表。 目录 1.boot_code.s简介 2. MMU配置相关 2.1系统寄存器 2.2 ttb0_base的配置 1.boo…

手把手教你打造Vue2项目中的自定义折叠组件

场景 产品&#xff1a;新增表单页面过长&#xff0c;操作不便捷&#xff0c;增加折叠功能。前端&#xff1a;OK&#xff01;&#xff01;&#xff01;PS&#xff1a;前端就是这么好说话o(*&#xffe3;︶&#xffe3;*)o废话一 本文将带领大家了解如何在Vue2项目中创建一个自定…

简单的docker学习 第7章 docker网络

第7章 Docker 网络 7.1Docker 网络理论基础 Docker 网络中的相关命令非常少&#xff0c;但需要掌握的底层原理相对较多。 首先使用busybox创建两个容器&#xff0c;方便后续使用 # 之后使用ctrl p q 退出&#xff0c;保持后台运行 docker run --name bb1 -it busybox /bi…