通过代码实例了解Python异常本质
作者:Xujie_0528 发布时间:2023-06-14 06:29:19
异常的本质导引问题
在实际工作中,我们遇到的问题都不是完美的,比如:你写某个模块,用户输入不一定符合你的要求:你的程序要打开某个文件,这个文件不可能存在或者打开格式不对,你要读取数据库数据,数据可能是空的;我们程序运行着,但内存或硬盘可能已经满了
软件程序运行过程中,非常可能遇到我们刚刚提出的这些问题,我们称之为:异常,英文名:Exception,译为:例外。遇到这些情况,我们的处理方法如下
如果我们要拷贝一个文件,在没有异常的情况下,我们需要考虑到各种情况
if 'd:/a.txt'这个文件存在:
if e盘空间大于a.txt长度:
if 文件复制一半IO流断掉:
停止copy,输出:IO流问题!
else:
copyFile('d:/a.txt','e:/a.txt')
else:
print('e盘空间不够放a.txt!')
else:
print('a,txt不存在!')
这种方法,有两个坏处:逻辑代码和错误处理代码放在一起程序员本身需要考虑到例外情况较复杂,对程序员本身要求较高
python的异常机制给我们提供了方便的处理方式
try:
copyFile('d:/a.txt','e:/a.txt')
except:
print('文件无法拷贝')
异常机制本质
异常指程序运行过程中的非正常现象,列如:用户输入错误,除数为零,需要处理的文件不存在,数组下标越界等
所谓异常处理,就是指程序在出现异常后依然可以正确运行后续程序,而不会因为异常终止执行
python中,引进了很多用来描述和处理异常的类,称为异常类,异常类定义中包含了该异常的信息流和对异常的处理方法。下面较为完整的展示了python中内建异常类的继承层次
Python中一切皆对象,异常也采用对象的方式处理,处理过程:
1. 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象交给解释器
2. 捕获异常:解释器得到该异常后,寻找相应的代码处理该异常
解决异常问题的态度不慌张,细看信息定位错误。
百度并查看十个帖子。
与他人协商解决异常解决的关键:定位
当发生异常时,解释器会报相关异常信息,并会在控制台打印相关信息,我们只需要按照从上到下的顺序即可追溯错误发生过程
来源:https://www.cnblogs.com/xujie-0528/p/13677226.html


猜你喜欢
- 本文是对pandas官方网站上《10Minutes to pandas》的一个简单的翻译,原文在这里。这篇文章是对pandas的一个简单的介
- 如下所示:#python解决字符串倒序输出def string_reverse(m): num=len(m) a=[] for i in r
- 支付宝十年账单上的数字有点吓人,但它统计的项目太多,只是想看看到底单纯在淘宝上支出了多少,于是写了段脚本,统计任意时间段淘宝订单的消费情况,
- 1、ALL OR ANYPython 之所以成为这么一门受欢迎的语言一个原因是它的可读性和表达能力非常强。Python 也因此经常被调侃为&
- 处理mat文件的三种方式读书的时候,处理数据都是采用matlab,但毕业后当了程序员,matlab从此在自己的电脑上消失了(安装包太大,还要
- 问题: pydev使用wx库开发的过程中,import时碰到wx可以识别,但是其它很多函数和变量上面全部是红叉,即无法识别。 解决方法: 1
- 如下所示:#-*- coding:utf-8 -*-import numpy as npimport matplotlib.pyplot a
- 一. torch.cat()函数解析1. 函数说明1.1 官网:torch.cat(),函数定义及参数说明如下图所示:1.2 函数功能函数将
- 在cmd下运行go程序或者是GOLAND的Terminal下运行go程序会出现中文乱码的情况。go run ttypemain.go����
- 前言在实际业务场景我们可能需要开放单独用户给第三方使用,并且不想让第三方看到与业务不相关的表或视图,我们需要在数据库中设置一切权限来实现此功
- 1. 引言Python中有一些内置函数,可以使我们的代码非常优雅。zip 函数就是其中之一,但是zip 函数的使用对于初学者来说不是很直观,
- 一、绘制折线图使用plot()绘制折线图常用的参数:x:表示x轴的数据y:表示y轴的数据fmt:表示快速设置条样式的格式字符串。label:
- 我就废话不多说了,直接上代码!from enum import Enumclass Values(): values={'
- 开发环境开发环境为:Win 10(64位)Python 3.7.0Django 2.1安装Pythonpython的安装为比较简单,首先找到
- 目录1. 前言2. Echarts3. Pyecharts3-1 安装依赖3-2 拷贝 
- 一、推理原理1.标定噪声的特征,使用cv2.inRange二值化标识噪声对图片进行二值化处理,具体代码:cv2.inRange(img, n
- key: [com.alibaba.druid.stat.DruidDataSourceStatManager.addDataSource(
- 介绍PaddleOCR 是一个基于百度飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、
- 在写cmu14-445的project时,我希望在本地vscode编辑代码,然后在docker中编译和测试代码。但是如果测试出了问题,直接在
- 其实很简单,用len函数:>>> array = [0,1,2,3,4,5] >>> print len