【白话python连载(8)】 python的异常处理

Unity Acceleratorc与Cache Server unity的缓存服务器 文章目录1.作用概述2.用法(使用,看这个就够了)服务端下载部署Unity Acceleratorc修改http管理端口修改Editor连接端口客户端使用(设置好一次提交设置,团队拉取即可全部生效)3.测试平台切换测试资源导入测试(打开编辑器的情况下)项目启动测试(不打开编辑器的情况下)4.不同版本表现5.服务端监控6.服务端缓存7.冲突8.预警9.不同项目/不同配置-同种资源10.缓存清除 1.作用概述 编辑器模式下,导入资源,切换平台unity都会重新识别资源,大型项目很浪费时间,使用Cache Ser 阅读详情

欢迎大家关注公众号【哈希大数据】

【白话python连载(1)】 一起遇见python

【白话python连载(2)】 Python的程序结构

【白话python连载(3)】 Python的输入输出实例

【白话python连载(4.1)】 python的数据类型

【白话python连载(4.2)】 python的数据类型

【白话python连载(5)】 python的条件语句

【白话python连载(6)】 python的循环语句

【白话python连载(7.1)】 python的函数应用

【白话python连载(7.2)】 python的模块介绍

【白话python连载(8)】 python的异常处理

【白话python连载(9.1)】 使用python处理文件

【白话python连载(9.2)】 python的os模块

【白话python连载(10)】 python的内置函数



python常见异常的介绍

python程序在运行过程中可能会因为语法错误、逻辑错误或外部异常(网络中断、空间不足、键盘操作)而导致程序终止退出。而且这些问题的出现往往是不可避免的。每一个较为成型的健壮的程序都是经过不断测试发现错误、调试错误、处理错误而逐渐完善。因此python中也内置了较为完整的异常处理机制,来帮助程序开发人员更好的处理不同的程序问题。常见异常分类和实例如下:
NameError 使用的变量不存在
image

AttributionError对象属性不存在,或者属性名不对所造成

image

FileNotFoundError 读取文件失败,是因为文件在指定位置不存在

image

ModuleNotFoundError 模块导入失败 模块名书写不对

image

IndentationError代码对齐方式不对,代码书写缩进不正确

image

IndexError列表下标超出索引

image

keyErroy字典不存在某个键

image

KeyboardInterrupt 用户中断操作,用户使用键盘输入了ctrl+c

image

SyntaxError 代码的逻辑语法不对,python3中的输出函数必须用()包裹输出内容

image

TypeError 传入的对象类型不符合要求

image

ValueError 传入的对象的值的数据类型也要求不符合

image

除了这些常见的异常之外,还有一些其他异常,在实际遇到时可以根据异常提示进行调整和修改。

自定义抛出异常

python内置的这个异常处理机制,可以帮助我们很快了解出错的信息,而且我们也可以借助print(输出语句)或assert(断言机制)【assert 表达式,表达式不为真时输出异常】找出出错的位置。促使我们有针对性的修正一些显而易见的程序错误。

除此以外,在编写特定功能模块时,该模块有些地方也会常常出现问题,但是在现有的机制中没有合适的错误提示,当别人导入使用该模块可能不太能轻易找出这个异常,因此我们自己在编写程序的过程中也可以自定义一些异常情况,并将其抛出,让使用可以很方便的发现问题,解决问题。

如果是python中不存在的异常,需要先提前声明对应异常的类,不然会提示名称异常的错误。在程序中将容易出问题的地方使用raise语句抛出进行提示。自定义的错误抛出可以使得自己输出的相关功能模块更易复用,这种自定义抛出的异常必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。我们来看一个自定义的抛出异常实例:

#!/usr/bin/python# 
-*- coding: utf-8 -*-class MyError(TypeError): #定义异常的类 
pass #代码占位不执行任何操作def my_abs(x): #实现求绝对值的函数(要求输入的必须是整型或者浮点型)
 if not isinstance(x, (int, float)): raise MyError('bad input type') #抛出异常
 if x >= 0: 
return x 
else: return -x
if __name__ == '__main__': print(my_abs(0)) print(my_abs('a'))

输出结果

"D:\anaconda python\python3.6.exe" D:/vernacular/coding_ziyi/Error.py
Traceback (most recent call last):0
File"D:/vernacular/coding_ziyi/Error.py", line 16, in <module>

print(my_abs('a'))*
File"D:/vernacular/coding_ziyi/Error.py", line 9, in my_abs*
raise MyError('bad input type')*
main.MyError: bad input type*
Process finished with exit code*

和python的bug say googbye

python程序在运行过程中,是按照主程序编写顺序依次执行每条语句,如果运行过程中在某条语句处检测到错误,则会立即终止程序运行,接下来的程序即使无错也无法再正常运行。为了跳过某些非人为因素导致的错误或者异常,或者比如在爬取网络数据时,不同网页的变量定义的不同可能会出现我们在获取数据时所对应的对象类型报错的情况。会希望跳过一些特殊的网站,而去获取其他类型符合要求的网站。这时需要借助python的处理异常的功能来实现。跳过可以直接忽略的那些报错内容。

image.png

注意点:

1、 在异常处理机制中,只会输出一个except捕捉的异常内容。一旦捕获一个异常内容异常处理机制中后续的代码将不会再执行。直接跳到finally语句或接下来的程序块。

2、 finally程序块无论之前是否捕捉到异常都会被执行过程,如果之前的except未捕捉到异常,经过finally处理后会中断程序并且提示相应的异常内容。若之前程序正常执行或被except捕捉到异常,则之后程序仍正常执行。

3、 else程序块,只有在之前程序没有任何异常被捕获的的情况下才会执行。

4、 try-except机制可以跨越多层次调用处理。只要在合适的层次处理异常捕获即可。如在主函数中捕获其他函数模块的异常信息,而不需要再在其他函数本身捕获异常。

5、 异常输出结果也是跨层次进行提示 ,从最新发现错位的位置寻根溯源,最终帮开发者找出最核心的出错原因。

python异常小结

1、本次主要介绍了python程序中常见的一些异常,以便更好的了解报错内容。

2、对于抛出异常方式可以直接通过print()或assert()方法定位异常或者是通过自定义方式进行提示。

3、灵活使用try-except检测和处理异常,可以根据捕获的异常信息确定异常原因,了解异常原因,而不影响后续程序的正常执行(非人为因素导致的)。

Arcgis模型构建器01——写一个简单的模型 在使用模型构建器解决这个需求之前,我们要想清楚如果我们手动解决的话,应该如何去处理,因为构建模型的过程正是基于我们手动处理的过程来构建的。我有一个全国的dem影像数据和一个陕西省边界范围矢量,现在我想获取陕西省的dem影像的坡度数据。填写完之后点击确定,我们发现,两个输入数据和工具连接起来了,并且通过裁剪工具得到一个中间结果,即。我们发现工具框和中间数据框都存在阴影,说明已经运行过了这个模型,不报错就说明模型运行成功!现在我们就把数据和工具都串联起来了,成功构建好了模型。 阅读详情

相关推荐

嵌入式设备电量显示实战:MCP3421 ADC采集从原理到代码全解析(附避坑指南)

本文详细解析了嵌入式设备中MCP3421 ADC芯片在电量显示应用中的硬件设计、寄存器配置、I2C通信调试及低功耗优化策略。通过实战代码和避坑指南,帮助开发者实现高精度电量监测,特别针对I2C时序和分压电路设计等常见问题提供解决方案,适用于物联网终端和移动设备开发。

weixin_42525632的博客 386

【白话python连载(3)】Python的输入输出

欢迎关注公众号【哈希大数据】系列文章目录:【白话python连载(1)】 一起遇见python【白话python连载(2)】 Python的程序结构【白话python连载(3)】 Python的输入输出实例【白话python连载(4.1)】 python的数据类型【白话python连载(4.2)】 python的数据类型【白话python连载(5)】 python的条件语句【白话python连载(...

HashData2018的博客 2272

Android 11系统定制:如何彻底隐藏状态栏电池图标(RK3568实测)

本文详细解析了在Android 11系统上如何通过多维度修改实现状态栏电池图标的彻底隐藏,特别针对RK3568平台提供了实战指南。从系统UI架构解析到核心配置文件修改,再到进阶技巧与疑难排查,帮助开发者深度定制Android系统,满足特定场景需求。

weixin_29250573的博客 376

【白话python连载(6)】python的循环语句

欢迎大家关注公众号【哈希大数据】【白话python连载(1)】 一起遇见python【白话python连载(2)】 Python的程序结构【白话python连载(3)】 Python的输入输出实例【白话python连载(4.1)】 python的数据类型【白话python连载(4.2)】 python的数据类型【白话python连载(5)】 python的条件语句【白话python连载(6)】 p...

HashData2018的博客 2169

库卡机器人负载设置和自动负载测算

1.1在专家或者以上的权限下—“投入运行”——“工具/基座标管理”—“工具/工件”—添加1.2根据当前的工具所在的tool选择指定工具号;若是没有建立tool需要先建立建立方法看1.3负载数据的填写质量:抓手自重+产品重量总和(需要小于额定负载值)X、Y、Z :总质量的重心位置(基于法兰盘中心的位置计算,如下图的X_FLANGE、Y_FLANGE、Z_FLANGE)【此数据可以根据仿真或者CAD数据得出】A、B、C:是总质量绕着法兰盘中心所安装的角度位置 【此数据可以根据仿真或者CAD数据得出】

weixin_43462131的博客 3113

MediaPipe+Unity动作捕捉实战:如何用普通摄像头驱动3D人物模型(附避坑指南)

本文详细介绍了如何利用MediaPipe和Unity实现低成本动作捕捉,仅需普通摄像头即可驱动3D人物模型。通过MediaPipe的3D坐标预测能力,结合Unity的骨骼映射优化,解决单目摄像头下的三维重建难题,并提供实战避坑指南和性能优化技巧,帮助开发者快速实现专业级的人物模型驱动效果。

weixin_29047545的博客 359

【白话python连载(9.2)】 python的os模块

欢迎大家关注公众号【哈希大数据】【白话python连载(1)】 一起遇见python【白话python连载(2)】 Python的程序结构【白话python连载(3)】 Python的输入输出实例【白话python连载(4.1)】 python的数据类型【白话python连载(4.2)】 python的数据类型【白话python连载(5)】 python的条件语句【白话python连载(6)】 p...

HashData2018的博客 2012

AntV G6边动画实战:手把手教你实现数据流向箭头与虚线流动效果

本文详细解析了如何使用AntV G6实现数据流向箭头与虚线流动效果,通过自定义边动画提升数据可视化的动态表现力。从基础环境搭建到核心概念讲解,再到虚线流动动画和箭头路径动画的具体实现与参数调控,帮助开发者掌握G6边动画的高级技巧,适用于网络流量监控、数据传递等场景。

weixin_28487433的博客 267

【白话python连载(9.1)】 使用python处理文件

欢迎大家关注公众号【哈希大数据】【白话python连载(1)】 一起遇见python【白话python连载(2)】 Python的程序结构【白话python连载(3)】 Python的输入输出实例【白话python连载(4.1)】 python的数据类型【白话python连载(4.2)】 python的数据类型【白话python连载(5)】 python的条件语句【白话python连载(6)】 p...

HashData2018的博客 1902

Eplan设计师必会—伺服安全回路的设计方法

本文介绍了在EPLAN中设计伺服STO安全回路的方法。首先需查阅伺服驱动器说明书确定STO接线端子,重点关注双通道配置。设计步骤包括:使用黑盒子功能绘制驱动器外形,正确标注STO接线点,并连接安全继电器或PLC的安全输出。关键注意事项有:必须采用双通道独立布线,确保同步动作,遵循故障安全原则,使用常闭触点串联回路。文中以西门子V90和汇川伺服为例说明具体接线要求,并附有项目实例参考。

Qinmingyue13的博客 436

【电容/电感】电路板会“滋滋”的响,我们称它为啸叫

一、啸叫的起源 大部分硬件工程师应该都遇到过,PCBA上电后出现“滋滋滋”的叫声,其声响或大或小,或时有时无,或深沉或刺耳,或变化无常者皆有。该现象我们称为“啸叫”,一般分为电感啸叫和电容啸叫。

云轩阁 6万+

【白话python连载(2)】--python的程序结构

欢迎关注公众号【哈希大数据】系列文章目录:【白话python连载(1)】 一起遇见python【白话python连载(2)】 python的程序结构【白话python连载(3)】 巧妙使用输入输出【白话python连载(4.1)】 python的数据类型【白话python连载(4.2)】 python的数据类型【白话python连载(5)】 python的条件语句【白话python连载(6)】 p...

HashData2018的博客 1246

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

Robot_PLC_HMI_Automation 1万+

【白话python连载(4.2)】python的数据类型

欢迎大家关注公众号【哈希大数据】系列文章目录:【白话python连载(1)】 一起遇见python【白话python连载(2)】 Python的程序结构【白话python连载(3)】 Python的输入输出实例【白话python连载(4.1)】 python的数据类型【白话python连载(4.2)】 python的数据类型【白话python连载(5)】 python的条件语句【白话python连...

HashData2018的博客 1276

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【白话python连载(4.1)】python的数据类型

欢迎关注公众号【哈希大数据】系列文章目录:【白话python连载(1)】 一起遇见python【白话python连载(2)】 Python的程序结构【白话python连载(3)】 Python的输入输出实例【白话python连载(4.1)】 python的数据类型【白话python连载(4.2)】 python的数据类型【白话python连载(5)】 python的条件语句【白话python连载(...

HashData2018的博客 2097

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

大白话python——下

才是用于赋值作用的运算符。举个简单的例子就是:班长在送第99支花的时候,小美谈了男朋友,班长就停下了送花的脚步了。

BabySam0225的博客 1133

大白话Python——上

致力于用大白话讲python

BabySam0225的博客 1366

python异常处理基础入门

python中之异常处理详解

机器学习笔记 943

python 异常处理 应急预案

报错头疼,异常头疼,怎么办?来看看我⑧~~~

三岁学编程的博客 856

【Python入门】异常处理、模块与包

本文介绍了Python异常处理和模块系统的核心内容。在异常处理部分,详细讲解了六种捕获方式以及常见异常类型和异常传递特性。模块部分阐述了五种导入方式、自定义模块的实现、__main__变量的调试作用以及__all__变量的导入控制功能。最后介绍了Python包的概念、三种导入方式和第三方包的安装方法。这些知识点构成了Python程序错误处理和模块化开发的基础框架。

qq_74148481的博客 477

万字长文丨大白话带你由浅入深Python编程语言

def 函数名(参数1, 参数2, ..., 参数n):执行操作return 返回值return 返回值return 返回值# 定义不带返回值的函数print('最大值:%s' % a)else:print('最大值:%s' % b)# 定义带返回值的函数return aelse:return bclass 类名:def __init__(self, 属性1, 属性2, ...):self.属性1 = 属性1self.属性2 = 属性2...

am1122的博客 916

Python迭代器-异常处理

常见内置函数 # 1.help() 查看注释信息 help(len) # 2.id() 返回一串相当于内存地址的数字 print(id('wql')) # 3.int() 类型转换、机制转换 # 4.isinstance() 判断数据类型 print(type('wql') is str) # 类型判断 别扭的很 不推荐 print(isins...

Lamb的博客 89

【Python入门】第8节 异常模块和包

1.了解如何自定义模块并使用2.了解__main__变量的作用Python中已经帮我们实现了很多的模块,不过有时候我们需要一些个性化的模块, 这里就可以通过自定义模块实现, 也就是自己制作一个模块。案例:新建一个Python文件,命名为my_module1.py,并定义test函数每个Python文件都可以作为一个模块,模块的名字就是文件的名字. 也就是说自定义模块名必须要符合标识符命名规则。测试模块。

D_AKJS 2287

python中异常处理的方法_python中异常报错处理方法汇总

首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等。Python中异常是指程序中的例外,违例情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。打个比方很多公司年终送苹果笔记本,你程序话思维以为是(MAC)电脑笔记本,结果给你个苹果+笔记本。。。首先类型不对,数量也不对。...

weixin_39867559的博客 192

|Python新手小白中级教程|第二十四章:神奇的type()函数&异常处理(try-except-else-finally)

今天,我们就来说两个非常常见的两个内容——异常与type()函数,干货较多,别忘了好好消化!

m0_69481332的博客 928

Python学习(五)异常处理与模块

以下代码,列举了常见异常类型,比如变量未定义异常,除零异常等,也可以利用()捕捉多个可能出现的异常,未正确设置捕获异常类型,将无法捕获异常。解释:以只读模式打开不存在的文件程序会报错,所以在异常处理中用写模式打开该文件,因为写模式,文件不存在会创建文件。print("出现异常了,因为文件不存在,我将open的模式,改为w模式去打开")print("出现异常了")

xiaofeng8596的博客 266

【paddle领航团基础python课程】三岁总结

paddle领航团基础python课程总结

三岁学编程的博客 382
上一篇: 【白话python连载(7.2)】python的模块介绍
下一篇: 【白话python连载(9.1)】 使用python处理文件
哈希大数据
博客等级 码龄9年 331粉丝 48原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值