一.常见异常

1.语法错误:SyntaxError:invalid syntax

(1)案例:

(1)解决方法:

①查看代码有没有红色波浪线

②熟悉python基本语法

2.变量名不存在:NameError:name 'b' is not defined

(1)案例:

(2)解决方法:

①检查对应的变量名是否有定义并赋值,是否写错了变量名称

 3.索引错误:IndexError: list index out of range

(1)案例:

(2)解决方法:

①检查lis对象索引选择是否超出了本来的长度

4.关键字错误:KeyError: 'c'

(1)案例:

(2)解决方法:

①检查字典里是否存在这个key值

5.类型错误:TypeError: list indices must be integers, not str

(1)案例:

(2)解决方法:

①检查清楚数据类型是否有误

 6.参数传值错误:ValueError: invalid literal for int() with base 10: 'ab'(主要发生在函数里面)

(1)案例:

(2)解决方法:

①弄清楚形参的数据类型

②再传对应形参的数据类型

7.属性错误:AttributeError: A instance has no attribute 'acc'

(1)案例:

(2)解决方法:

①检查类里是否存在这个被调用的方法

②一般不能自动匹配出方法的多半有问题

8.输入输出错误:IOError

(1)案例:

(2)解决方法:

①找到代码中关于输入输出的相关操作

②检查文件路径和名称对不对

二.常见异常总结

1.SynataxError:语法错误

2.NameError:试图访问的变量名不存在

3.IndexError:索引错误,使用的所以你不存在,常为索引超出序列范围

4.KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误

5.TypeError:类型错误,内建操作或是函数应于在错误类型的对象时会引发类型错误

6.ValueError:值错误,传给对象的参数类型不正确,例如给int()函数传入了字符串数据类型

7.AttributeError:属性错误,特性引用和赋值失败时会引发属性错误

8.IOError:输入输出错误

异常不局限于以上八中,这只是很常见的八种异常

三.捕获异常

1.try...except组合语法

(1)代码:

try:

  正常的操作

except:

  发生异常,执行这块代码

(2)案例:

2.try...except...else组合语法

(1)代码:

try:

  正常的操作

except:

  发生异常,执行这块代码

else:

  如果没有异常,执行这块代码

(2)案例:

3.try...except...except(多个异常处理)

(1)代码:

try:

  正常的操作

except A:

  发生异常A,执行这块代码

except B:

  发生异常B,执行这块代码

except:

  发生其它异常,执行这块代码

else:

  如果没有异常,执行这块代码

(2)案例:

4.try...except(A,B)(一次捕获多个异常)

(1)代码:

try:

  正常的操作

except(A,B):

  发生异常A和B,执行这块代码

(2)案例:

5.try...except...finally组合语法:(try...finally也可以)

(1)代码:

try:

  正常的操作

except:

  发生异常,执行这块代码

else:

  如果没有异常,执行这块代码

finally:

  不管有没有异常,都执行这块代码

(2)案例:

6.try...except(嵌套)

(1)代码:

try:

  正常的操作

  try:

  正常的操作

  finally:

  不管有没有异常,都执行这块代码

except A:

  发生异常,执行这块代码

(2)案例:

四.处理异常(在脚本执行不成功时,我们希望能把信息打印出来)

1.如果已经知道会发生什么异常:

 

2.不知道会发生什么异常(万能的)---------所有的异常都继承Exception

Python捕获异常的更多相关文章

  1. python捕获异常及方法总结

    调试Python程序时,经常会报出一些异常,异常的原因一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常Traceback到出错点,进行分析改正:另一方面,有些异常是不可避免的,但 ...

  2. Python——捕获异常

    一.什么是异常 """异常:错误,bug处理异常:尝试执行某句可能出现异常的语句, 若出错则用正确的代码去替代. try: 可能发生错误的代码except: 如果出现异常 ...

  3. python捕获异常、处理异常

    https://blog.csdn.net/jmilk/article/details/50047457

  4. 网上都没有提到的教程:python捕获异常后,怎么输出错误文件和行号

    1.假设输出不存在的变量 a try: print(a) except NameError as e: print('发生错误的文件:', e.__traceback__.tb_frame.f_glo ...

  5. python 捕获异常顺序

    catch 异常的时候,有关的异常(若是抛出子类异常,则父类异常的except也算.反之不算)except的语句是按代码顺序执行, 也就是说,当一个异常发生时,从若干except中若遇见异常类基类,父 ...

  6. python 捕获异常详细信息

    import os import sys import traceback BasePath = os.path.dirname(os.getcwd()) sys.path.append(BasePa ...

  7. python 捕获异常

  8. python的运维交流学习笔记

    #!/usr/bin/env | #!/usr/bin/python#coding:gbk #python 运维练习 #需求: #1.利用python实现自动监控服务器性能 #2.并将监控到的数据进行 ...

  9. 用Python爬E站本

    用Python爬E站本 一.前言 参考并改进自 OverJerry 大佬的 教你怎么用Python爬取E站的本子_OverJerry. 本文为技术学习记录,不提供访问无存在网站的任何方法,也不包含不和 ...

随机推荐

  1. 《Javascript权威指南》学习笔记之十九--HTML5 DOM新标准---处理文档元信息和管理交互能力

    一.了解DOM 1.DOM是Document Object Model的缩写,即文档对象类型,是文档在内存中的表示形式,是一个应用程序接口,定义了文档的逻辑结构以及一套訪问和处理文档的方法. 2.HT ...

  2. easyui treegrid增、删、改及批量保存

    treegrid添加新行和删除行的方法: 添加和删除直接调用这两个方法即可,修改的方法有点特殊,treegrid没有提供update方法,设置行为编辑状态,$('#obj_tgd_objectlist ...

  3. 状压dp Mondriaan's Dream poj2411

    超经典的一道题目,实现这题的方法也有非常多种 1.利用DFS建立矩阵,然后通过高速矩阵幂得到答案(运用于min(m,n)比較小.可是max(m,n)很大的情况) 2.利用dp状压解决 第一种在我的还有 ...

  4. idea 编程字体推荐

    monaco vardana fira code mediu dejavu sans mono 上述字体 在14号字 1.1倍行距 时编程比较舒服

  5. Python 实现字符串转换成列表 实现str转换list

    其中Python strip() 方法用于移除字符串头尾指定的字符 split()就是将一个字符串分裂成多个字符串组成的列表 >>> image ='1.jsp,2.jsp,3.js ...

  6. [docker]一些经常或不经常用到的镜像启动方法-一些常用的docker启动方式

    一些经常或不经常用到的镜像启动方法 设置容器的TZ另一种办法 参考: https://github.com/spujadas/elk-docker/blob/master/start.sh ## ov ...

  7. OSGi规范概要

    目前最新的OSGi规范是2012年7月发布的Release 5,Version5.0(后文简称为R5.0)版本,该规范定义了Java模块化系统所涉及的各种场景(开发.打包.部署.更新和交互等),以及其 ...

  8. Hello,Ajax

    学习了Ajax技术,写了一个最简单的Ajax应用 <%@page contentType="text/html; charset=utf-8" language=" ...

  9. dbutils使用---QueryRunner、BeanListHandler、BeanHandler、MapListHandler、MapHandler、ScalarHandler

    1. ResultSetHandler 的作用: QueryRunner 的 query 方法的返回值最终取决于 query 方法的 ResultHandler 参数的 hanlde 方法的返回值. ...

  10. OpenCV3.1.0+VS2013配置+Win10(64位)(转载)

    OpenCV3.1.0+VS2013配置+Win10(64位) [环境]VS2013和MATLAB相互调用混合编程 Matlab 2016a和VS2013混合Dll编程步骤 更换了硬盘之后,重新配置了 ...