Python捕获异常
一.常见异常
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捕获异常的更多相关文章
- python捕获异常及方法总结
调试Python程序时,经常会报出一些异常,异常的原因一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常Traceback到出错点,进行分析改正:另一方面,有些异常是不可避免的,但 ...
- Python——捕获异常
一.什么是异常 """异常:错误,bug处理异常:尝试执行某句可能出现异常的语句, 若出错则用正确的代码去替代. try: 可能发生错误的代码except: 如果出现异常 ...
- python捕获异常、处理异常
https://blog.csdn.net/jmilk/article/details/50047457
- 网上都没有提到的教程:python捕获异常后,怎么输出错误文件和行号
1.假设输出不存在的变量 a try: print(a) except NameError as e: print('发生错误的文件:', e.__traceback__.tb_frame.f_glo ...
- python 捕获异常顺序
catch 异常的时候,有关的异常(若是抛出子类异常,则父类异常的except也算.反之不算)except的语句是按代码顺序执行, 也就是说,当一个异常发生时,从若干except中若遇见异常类基类,父 ...
- python 捕获异常详细信息
import os import sys import traceback BasePath = os.path.dirname(os.getcwd()) sys.path.append(BasePa ...
- python 捕获异常
- python的运维交流学习笔记
#!/usr/bin/env | #!/usr/bin/python#coding:gbk #python 运维练习 #需求: #1.利用python实现自动监控服务器性能 #2.并将监控到的数据进行 ...
- 用Python爬E站本
用Python爬E站本 一.前言 参考并改进自 OverJerry 大佬的 教你怎么用Python爬取E站的本子_OverJerry. 本文为技术学习记录,不提供访问无存在网站的任何方法,也不包含不和 ...
随机推荐
- Drupal启动阶段之一:配置
配置是Drupal启动过程中的第一个阶段,通过函数_drupal_bootstrap_configuration()实现: function _drupal_bootstrap_configurati ...
- [Java Performance] JVM 线程调优
调整线程栈空间 当很缺少内存时,能够调整线程使用的内存. 每一个线程都有一个栈,用来记录该线程的调用栈信息.线程中的栈的默认空间是有OS和JVM的版本号决定的: OS 32-bit 64-bit Li ...
- 基于leveldb,levigo做二次开发
Leveldb是一个C++库,它有提供标准的C接口,头文件在include/leveldb/c.h中 levigo是leveldb 的一个go wrapper,它主要基于Leveldb中inlude/ ...
- oc 阿拉伯数字转中文数字
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.numberStyle = NSNumberFor ...
- unity, particle play once and destroy
粒子播放一次后销毁: //ref: http://answers.unity3d.com/questions/219609/auto-destroying-particle-system ...
- 自定义 XIB subview的时候 为什么控件都是 空的
http://blog.wtlucky.com/blog/2014/08/10/nested-xib-views/
- HDU 3682 水模拟
n*n*n的图形,m条线,每条线上的方格被删除.问一共删除了多少个方格 ans=m*n .然后推断一下直线相交的交点.去重就可以 #include "stdio.h" #inclu ...
- SMARTY 变量
变量 模板变量以美元符号$开头,由字母.数组和下划线组成,和 PHP variable相似. 变量可以引用数字索引或非数字索引的数组,对象的属性和方法等. 配置变量 是例外的,它不是以美元符号$开头, ...
- flask学习笔记(-操作数据库)
Python 数据库框架 大多数的数据库引擎都有对应的 Python 包,包括开源包和商业包.Flask 并不限制你使用何种类型的数据库包,因此可以根据自己的喜好选择使用 MySQL.Postgres ...
- 【未完成】junit简单使用
参考资料: 一般使用:https://www.w3cschool.cn/junit/ 集成spring: https://www.cnblogs.com/faramita2016/p/7637086. ...