python中异常报错处理方法汇总
首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等。
Python中异常是指程序中的例外,违例情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。
打个比方很多公司年终送苹果笔记本,你程序话思维以为是(MAC)电脑笔记本,结果给你个苹果+笔记本。。。首先类型不对,数量也不对。
先来看几个常见的报错如下:
NameError 命名错误 原因是: name 'a' is not defined 命名a还未定义 简单来说就是程序不知道a带表谁 如果a=1 那程序就懂了 a代表1
所以以后碰到这类代码只用找到错误未定义的a给它赋相应的值即可解决了。
好了我们继续看下一个如下:
IndexError 索引错误(也有叫边界错误) 原因: list index out of range 列表的索引已经超出其范围导致
列表a只有2个参数,下标是0,1(不懂去看列表基础),而我要打印下标2位置的值这时候就超过它的标准不在范围内
打个比方坐公交车1米2以下儿童免费,结果来个1米5上来就不能免费因为你超过规定高度
来我们继续continue:
KeyError 键值错误 一般出现在字典中原因是:字典a中没有height这个键值,name已经打印出来因为a里面已经存在
字典是由dict = { key : value }一一对应组成,打个比方就理解了dict好比一家公司company由员工key类似标识
value等于员工的属性(岗位,工资,对应个人信息等)这报错就等于去一个公司找某某某,结果人家公司说没这个人一样。
继续继续continue:
ImportError 导入错误 原因:No module named nothing 没有模块名叫nothing的方法
一般这错误会发生在拼写错误或者大小写,没有安装模块方法,没有正确引用位置(模块更新版本可能会改方法名或新增文件夹)
这时候我推荐你去python2.x或者python3.x目录下\Lib\site-packages文件里面找找看(第三方库模块都会在这几种存放)
继续继续continue:
IOError 输入输出错误 原因:No such file or directory : 'test' 没有在目录中找到叫test文件
这个容易理解,无中生有。程序说:你坑谁啊?
继续继续continue:
AttributeError 成员属性错误 原因:一切皆对象 然而字典a对象内没有一个内置函数也就是内置方法叫sort排序,大家都知道字典是无序的,list列表才有这方法
当你定义一个变量不知道能用什么内置函数和方法时可以这样用dir查看以下当前可以用那些方法。
SyntaxError 语法错误 :无效语法 a没有定义所以没办法让它转换为整型 这也是常见错误之一
来接着看下一个:
TypeError 类型错误:不知道的哈希类型 list列表 (后面为个人理解) 但是元组却可以放进去有点费解,字典的key一般是单元素或唯一标识,
恰好元组不可变的序列也是唯一标识,所以元组可以放入key中。打比方就如你是世界上唯一的key,没有和你完全一样的存在。
以上是经常会遇到的问题报错,大家学会了就可以自己思考解决方法了这样也利于大家提高自己的水平。
相关推荐
-
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
我们可以利用urllib来抓取远程的数据进行保存哦,以下是python3 抓取网页资源的多种方法,有需要的可以参考借鉴. 1.最简单 import urllib.request response = urllib.request.urlopen('http://python.org/') html = response.read() 2.使用 Request import urllib.request req = urllib.request.Request('http://python.org
-
关于Python中异常(Exception)的汇总
前言 Exception类是常用的异常类,该类包括StandardError,StopIteration, GeneratorExit, Warning等异常类.python中的异常使用继承结构创建,可以在异常处理程序中捕获基类异常,也可以捕获各种子类异常,python中使用try...except语句捕获异常,异常子句定义在try子句后面. Python中的异常处理 异常处理的语句结构 try: <statements> #运行try语句块,并试图捕获异常 except <name1&
-
Python 异常处理的实例详解
Python 异常处理的实例详解 与许多面向对象语言一样,Python 具有异常处理,通过使用 try...except 块来实现. Note: Python v s. Java 的异常处理 Python 使用 try...except 来处理异常,使用 raise 来引发异常.Java 和 C++ 使用 try...catch 来处理异常,使用 throw 来引发异常. 异常在 Python 中无处不在:实际上在标准 Python 库中的每个模块都使用了它们,并且 Python 自已会在许多不
-
Python常见异常分类与处理方法
Python常见异常类型大概分为以下类: 1.AssertionError:当assert断言条件为假的时候抛出的异常 2.AttributeError:当访问的对象属性不存在的时候抛出的异常 3.IndexError:超出对象索引的范围时抛出的异常 4.KeyError:在字典中查找一个不存在的key抛出的异常 5.NameError:访问一个不存在的变量时抛出的异常 6.OSError:操作系统产生的异常 7.SyntaxError:语法错误时会抛出此异常 8.TypeError:类型错误,
-
浅谈python抛出异常、自定义异常, 传递异常
一. 抛出异常 Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行. raise 语句 Python中的raise 关键字用于引发一个异常,基本上和C#和Java中的throw关键字相同,如下所示: import traceback def throw_error(): raise Exception("抛出一个异常")#异常被抛出,print函数
-
python自定义异常实例详解
python自定义异常实例详解 本文通过两种方法对Python 自定义异常进行讲解,第一种:创建一个新的exception类来拥有自己的异常,第二种:raise 唯一的一个参数指定了要被抛出的异常 1.可以通过创建一个新的exception类来拥有自己的异常.异常应该继承自 Exception 类,或者直接继承,或者间接继承. >>>raiseNameError('HiThere') Traceback(most recent call last): File"<pysh
-
Python中异常重试的解决方案详解
前言 大家在做数据抓取的时候,经常遇到由于网络问题导致的程序保存,先前只是记录了错误内容,并对错误内容进行后期处理. 原先的流程: def crawl_page(url): pass def log_error(url): pass url = "" try: crawl_page(url) except: log_error(url) 改进后的流程: attempts = 0 success = False while attempts < 3 and not success:
-
python中异常捕获方法详解
在Python中处理异常使用的是try-except代码块,try-except代码块放入让python执行的操作,同时告诉python程序如果发生了异常该怎么办,try-except这个功能其实很多入门书籍中都放到了高级篇幅里,在入门的时候一般不会讲这个使用,尤其是作为运维人员,如果你经常写shell,转到python后估计也很少使用这个功能,这功能我觉得说明了shell和python的一个重要区别,因为python是一门真正的编程语言,像其它的编程语言php,java等都会提供异常捕获功能,
-
python中异常报错处理方法汇总
首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等. Python中异常是指程序中的例外,违例情况.异常机制是指程序出现错误后,程序的处理方法.当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理. 打个比方很多公司年终送苹果笔记本,你程序话思维以为是(MAC)电脑笔记本,结果给你个苹果+笔记本...首先类型不对,数量也不对. 先来看几个常见的报错如下: NameError 命名错误 原因是: name 'a' is n
-
Python如何处理异常报错方法(建议收藏!)
目录 写在前面 什么是异常? 如何处理异常? try 与 except 用法 例子 python标准异常 写在最后 写在前面 今天Python笔记的内容是: 异常处理 一旦Python脚本发生异常,程序需捕获并处理异常. 异常处理使得程序能够在处理异常后继续正常执行,不至于崩溃或终止执行. 什么是异常? 当Python无法正常处理程序时就会发生一个异常.异常是Python对象,表示一个错误. 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行 举个例子: >>> a =
-
Python中pyautogui库的使用方法汇总
目录 常用操作 鼠标操作 键盘操作 弹窗操作 图像操作 在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库.就本人而言,我更喜欢使用pyautogui库,该库功能多,使用便利.下面给大家介绍一下pyautogui库的使用方法.在cmd命令框中输入 pip3 install pyautogui 即可安装该库! 常用操作 我们在pyautogui库中常常使用的方法,如下: import pyautogui pyautogui.PAUSE =
-
Python基础中所出现的异常报错总结
今天我们来探索python中大部分的异常报错 首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等. 打个比方很多公司年终送苹果笔记本,你程序话思维以为是(MAC)电脑笔记本,结果给你个苹果+笔记本...首先类型不对,数量也不对. 先来看几个常见的报错如下: NameError 命名错误 原因是: name 'a' is not defined 命名a还未定义 简单来说就是程序不知道a带表谁 如果a=1 那程序就懂了 a代表1 所以
-
Python连接Oracle之环境配置、实例代码及报错解决方法详解
Oracle Client 安装 1.环境 日期:2019年8月1日 公司已经安装好Oracle服务端 Windows版本:Windows10专业版 系统类型:64位操作系统,基于x64的处理器 Python版本:Python 3.6.4 :: Anaconda, Inc. 2.下载网址 https://www.oracle.com/database/technologies/instant-client/downloads.html 3.解压至目录 解压后(这里放D盘) 4.配置环境变量 控制
-
python监控日志中的报错并进行邮件报警
目录 前言 实现思路 实现代码 前言 在测试过程中,注意力往往都在功能上,如果功能正常,是基本不会查看日志的,反之会查看日志定位问题.但是表面上的功能正常不能确保日志没有报错,不能确保其他功能点没有问题,这时我们就需要日志的监控,一旦有报错就触发报警机制(报警机制可以有邮件报警.钉钉微信发消息报警等),我选择的是发邮件报警. 实现思路 1.在测试过程中,日志时时在刷,时时监控难度太大 2.转换思路,每分钟对日志进行扫描一次,发现报错即报警 a.获取当前时间前一分钟的日志,并将日志全部写入一个文件
-
Android开发中Eclipse报错及对应处理方法总结
本文较为详细的总结了Android开发中Eclipse报错及对应处理方法.分享给大家供大家参考,具体如下: 报错1: Conversion to Dalvik format failed with error 1 报错原因:原因是我在android工程中不小心多导入Java的mina,结果一跑程序就报这个错误. 解决方法:将Java中用到的mina包移除,就OK了. 小结:以后遇到这种报错时,记得提醒自己可能是由于自己导错包了. 附: 网上其他处理方法:<丢失Android系统库或者Conver
-
JS 调试中常见的报错问题解决方法
报错:Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) at Function.m.parseJSON (jquery.js:8515) at Object.success (crud.html:45) at j (jquery.js:3143) at Object.fireWith [as resolveWith] (jquery.js:3255) at x (
-
安装python时MySQLdb报错的问题描述及解决方法
问题描述: windows安装python mysqldb时报错python version 2.7 required,which was not found in the registry 网上很多方案,比如方案一: Python3.x时, from _winreg import * 改为 from winreg import * 去掉下划线 import sys from _winreg import * # tweak as necessary version = sys.version
-
在vue中解决提示警告 for循环报错的方法
警告 1.出现这个警告问题的时候 我们可以去main.js中在头部添加这句话: Vue.config.productionTip = false 这样即可去除警告! 2.在build文件下的webpack.base.conf.js文件中, 将 ...(config.dev.useEslint ? [createLintingRule()] : []),注释掉, const createLintingRule = () => ({ test: /\.(js|vue)$/, loader: 'esl
随机推荐
- Spring MVC之WebApplicationContext_动力节点Java学院整理
- mongoDB 多重数组查询(AngularJS绑定显示 nodejs)
- 利用js给DropdownList赋值实例
- 基于JavaScript实现单选框下拉菜单添加文件效果
- c#详解datetime使用示例
- mysql 字符串长度计算实现代码(gb2312+utf8)
- PHP实现适用于文件内容操作的分页类
- 基于RxJava实现酷炫启动页
- ajax发表 读取 评论
- html中的input标签的checked属性jquery判断代码
- SQL Server误区30日谈 第26天 SQL Server中存在真正的“事务嵌套”
- 让jQuery与其他JavaScript库并存避免冲突的方法
- java中关于移位运算符的demo与总结(推荐)
- 解析如何用两个栈来实现队列的方法
- php 上传文件类型判断函数(避免上传漏洞 )
- Android中button点击后字体的变色效果
- Pandas中DataFrame的分组/分割/合并的实现
- PHP中非常有用却鲜有人知的函数集锦
- 使用layui日期控件laydate对开始和结束时间进行联动控制的方法
- python创造虚拟环境方法总结