Python基础06-异常

news2024/9/22 1:37:40

零、文章目录

Python基础06-异常

1、异常的基本概念

(1)异常是什么
  • 当检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"。
(2)异常演示
  • 例如:除数为0异常(数学中,除法运算除数是不能为0的)。
# 1、除数为0异常(数学中,除法运算除数是不能为0的)
print(10/0)

image-20231120195642967

2、异常的捕获方法

(1)捕获常规异常

基本语法:

try:
    可能发生错误的代码
except:
    如果出现异常执行的代码
'''
在Python中,我们可以通过try...except捕获异常
try:
    可能出现异常的代码
except:
    如果try语句中的代码出现了异常,则立即执行except缩进代码

优势:提高程序的健壮性
'''
num = int(input('请输入要进行除法运算的数字:'))
try:
    result = 10 / num
    print(result)
except:
    print('已经捕获到异常,执行B方案!')
(2)捕获异常并输出错误信息
  • 无论我们在except后面定义多少个异常类型,实际应用中,也可能会出现无法捕获的未知异常。这个时候,我们考虑使用Exception异常类型捕获可能遇到的所有未知异常:
'''
在实际工作中,不仅需要对异常进行捕获,还需要把异常信息写入到日志文件(具体是什么错误找到)
try:
    可能出现异常的代码
except Exception as e:
    print(e)  # 代表出错的异常信息 => 实际工作以后,写入日志文件中
'''
try:
    f = open('python.txt', 'r')
except Exception as e:
    print(f'-- 日志: {e} --')
    print('找到错误的同时,执行B方案!')
(3)捕获指定异常
  • 基本语法:如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。
try:
	print(name)
except NameError:
	print('name变量名称未定义错误')
(4)捕获多个异常
try:
	print(1/0)
except (NameError, ZeroDivisionError):
	print('ZeroDivision错误...')
(5)异常捕获中else语句
'''
try:
    可能出现异常的代码
except:
    捕获异常
else:
    当try语句中的代码没有出现异常,则执行else语句中的代码,反之,则不执行
'''
try:
    f = open('python.txt', 'r')
except:
    f = open('python.txt', 'w')
else:
    content = f.read()
    print(content)
(6)异常捕获中的finally语句
'''
其实完整的异常捕获语句:
try:
    可能出现异常的代码
except Exception as e:
    如果出现异常,则执行的代码
else:
    如果try语句中的代码没有出现异常,则执行else中的代码
finally:
    特别适合实现一些收尾的工作,因为它是无论是否异常都会执行的代码 => f.close()
'''
try:
    f = open('python.txt', 'r')
except:
    f = open('python.txt', 'w')
else:
    content = f.read()
    print(content)
finally:
    f.close()

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

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

相关文章

持续集成交付CICD:Jenkins使用GitLab共享库实现基于SaltStack的CD流水线部署前后端应用

目录 一、实验 1.Jenkins使用GitLab共享库实现基于SaltStack的CD流水线部署前后端应用 2.优化共享库代码 二、问题 1.Jenkins手动构建后端项目流水线报错 一、实验 1.Jenkins使用GitLab共享库实现基于SaltStack的CD流水线部署前后端应用 (1)GitLa…

MySQL,分组order by

一、创建分组 ## 创建分组 -- 返回每个发布会的参会人数 SELECT event_id,COUNT(*) as canjia_num FROM sign_guest GROUP BY event_id; 1、group by子句可以包含任意个列,但是但指定的所有列都是一起计算的。 group by 后2个字段一起计算的 2、group by后面可以跟…

Kafka-日志索引

Kafka的Log日志梳理 Topic下的消息是如何存储的? 在搭建Kafka服务时,在server.properties配置文件中通过log.dir属性指定了Kafka的日志存储目录。 实际上,Kafka的所有消息就全都存储在这个目录下。 这些核心数据文件中,.log结尾…

某60内网渗透之frp实战指南2

内网渗透 文章目录 内网渗透frp实战指南2实验目的实验环境实验工具实验原理实验内容frp实战指南2 实验步骤(1)确定基本信息。(2)查看frp工具的基本用法(3)服务端frp的配置(4)客户端frp的配置(5)使用frp服务 frp实战指南2 实验目的 让学员通过该系统的练习主要掌握&#xff1a…

方差分析实例

目录 方差分析步骤 相关概念 基本思想 随机误差 系统误差 组内方差 组间方差 方差的比较 方差分析的前提 1.每个总体都应服从正态分布 2.各个总体的方差必须相同 3.观察值是独立的 原假设成立 备择假设成立 单因素方差分析 提出假设 检验的统计量 水平的均值…

云原生之深入解析Linkerd Service Mesh的功能和使用

一、简介 Linkerd 是 Kubernetes 的一个完全开源的服务网格实现,它通过为你提供运行时调试、可观测性、可靠性和安全性,使运行服务更轻松、更安全,所有这些都不需要对代码进行任何更改。Linkerd 通过在每个服务实例旁边安装一组超轻、透明的…

【卡塔尔世界杯数据可视化与新闻展示】

卡塔尔世界杯数据可视化与新闻展示 前言数据获取与处理可视化页面搭建功能实现新闻信息显示详情查看登录注册评论信息管理 创新点结语 前言 随着卡塔尔世界杯的临近,对于足球爱好者来说,对比赛的数据分析和新闻报道将成为关注的焦点。本文将介绍如何使用…

Ubuntu安装蓝牙模块pybluez以及问题解决方案【完美解决】

文章目录 简介问题及解决办法总结 简介 近期因工程需要在Ubuntu中使用蓝牙远程一些设备。安装Bluetooth的Python第三方软件包pybluez时遇到很多问题,一番折腾后完美解决。此篇博客进行了梳理和总结,供大家参考。 问题及解决办法 pip install pybluez安…

nodejs微信小程序+python+PHP技术下的音乐推送系统-计算机毕业设计推荐

音乐推送系统采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,  本文设计了一款音乐推送系统,系统为人…

解决vue3+ts打包,ts类型检查报错导致打包失败

最近拉的开源大屏项目goview,在打包的过程中一直报Ts类型报错导致打包失败,项目的打包命令为: "build": "vue-tsc --noEmit && vite build" 是因为 vue-tsc --noEmit 是 TypeScript 编译器(tsc&#…

054:vue工具 --- BASE64加密解密互相转换

第054个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

正态总体的假设检验

一、三种情况 1.均值μ的假设检验 (1)σ已知 (2)σ未知 2.方差σ的假设检验 二、例题

【MySQL】数据库基础入门 安装MySQL

目录 介绍: 安装MySQL: 设置 root 账号密码 2.配置环境变量 2.找到 Path 系统变量, 点击 "编辑" 介绍: MySQL是一个开源的关系型数据库管理系统(RDBMS),它是一种用于管理和存储数据的软件。 安装MySQL: …

车规MCU应用场景及国产替代进展

目录 1.车规MCU应用场景 1.1 车身域 1.2 动力底盘域 1.3 座舱域和智驾域 1.4 网联域 2.国产替代进展 3.小结 前面一篇文章征途漫漫:汽车MCU的国产替代往事-CSDN博客对车规MCU国产替代的背景与一些往事进行了简单叙述,今天来聊聊车规MCU具体会在汽车哪些地方用…

听GPT 讲Rust源代码--src/tools(14)

File: rust/src/tools/rust-analyzer/crates/cfg/src/lib.rs 在Rust源代码中,rust/src/tools/rust-analyzer/crates/cfg/src/lib.rs这个文件是Rust语言分析器(Rust Analyzer)的一部分,用于处理和管理条件编译指令(Cond…

OceanBase 4.2.1社区版 最小资源需求安装方式

OceanBase 4.2.1社区版 最小资源需求安装方式 资源需求 资源需求分析 observer Memory 控制参数: memory_limit_percentage 默认80% memory_limit 直接设定observer Memory 大小 System memory 可设为1G 租户内存:sys租户内存设为1G,OCP需要的租户oc…

使用netcore编写对比excel差异

一、新建项目Vlook项目 using MiniExcelLibs; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Data; using System.IO;namespace Vlook {internal class Program{static void Main(string[] args){var dir App…

前端视角看 Docker : 基础命令全面指南

引言 Docker是一种开源的容器化平台,它允许开发者将应用程序和其依赖打包在一个轻量级的、可移植的容器中。这使得应用程序在不同的环境中部署变得简单且高效。本文将介绍Docker的一些基础命令和概念,帮助初学者快速上手。 1. Docker简介 Docker使用…

设计模式——享元模式(结构型)

引言 享元模式是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相同状态, 让你能在有限的内存容量中载入更多对象。 问题 假如你希望在长时间工作后放松一下, 所以开发了一款简单的游戏…

二十七、读写文件

二十七、读写文件 27.1 文件类QFile #include <QCoreApplication>#include<QFile> #include<QDebug>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QFile file("D:/main.txt");if(!file.open(QIODevice::WriteOnly | QIODe…