python常见异常和异常捕获

Python031

python常见异常和异常捕获,第1张

NameError错误,比如:

结果:

SyntaxError错误,比如:

结果:

ValueError错误,比如:

结果:

IndexError错误,比如:

结果:

IndentationError错误,也就是缩进错误,比如:

结果:

KeyError错误,比如:

结果:

AttributeError错误,属性错误,比如

结果:

对特定的错误进行捕获 ,用as可以自定义自己想要的提示信息,比如:

结果:

捕获多个异常 ,需要注意的是捕获多个异常时要用(),因为except后面只能接一个参数,比如:

结果:

捕获全部异常时,可以用Exception,比如:

结果:

自定义错误信息,比如:

结果:

异常捕获中finally的使用。一般用于不管程序是否错误,程序最后都应该执行的步骤,例如在文件操作中,关闭文件是最后必须执行的操作,比如:

结果:

f = print

print('123456')

type(print)

print = 123

f(type(print))

def fun3( function ):

function('123456')

fun3(print)

class NetConnectError(Exception):

def init (self , errorMsg=''):

NetConnectError.what= errorMsg

def fun(name):

if not isinstance(name,str):

raise TypeError('类型错误')

print('类型正确')

print(isinstance(123 , str))

try:

fun(123)

except Exception as err:

print('fun产生异常:' , err)

try:

print(a)

l1 = [1,2,3,4]

l1[4] = 0

except Exception as err: # 将IndexError异常对象保存到err中

print('产生异常:',err)

print('ssssss')

如果你用 Python 编程,那么你就无法避开异常,因为异常在这门语言里无处不在。打个比方,当你在脚本执行时按 ctrl+c 退出,解释器就会产生一个 KeyboardInterrupt 异常。而 KeyError、ValueError、TypeError 等更是日常编程里随处可见的老朋友。

异常处理工作由“捕获”和“抛出”两部分组成。“捕获”指的是使用 try ... except 包裹特定语句,妥当的完成错误流程处理。而恰当的使用 raise 主动“抛出”异常,更是优雅代码里必不可少的组成部分。

异常分类

BaseException 所有异常的基类

Exception 常见错误的基类

ArithmeticError 所有数值计算错误的基类

Warning 警告的基类

AssertError 断言语句(assert)失败

AttributeError 尝试访问未知的对象属性

DeprecattionWarning 关于被弃用的特征的警告

EOFError 用户输入文件末尾标志EOF(Ctrl+d)

FloattingPointError 浮点计算错误

FutureWarning 关于构造将来语义会有改变的警告

GeneratorExit generator.close()方法被调用的时候

ImportError 导入模块失败的时候

IndexError 索引超出序列的范围

KeyError 字典中查找一个不存在的关键字

KeyboardInterrupt 用户输入中断键(Ctrl+c)

MemoryError 内存溢出(可通过删除对象释放内存)

NamerError 尝试访问一个不存在的变量

NotImplementedError 尚未实现的方法

OSError 操作系统产生的异常(例如打开一个不存在的文件)

OverflowError 数值运算超出最大限制

OverflowWarning 旧的关于自动提升为长整型(long)的警告

PendingDeprecationWarning 关于特征会被遗弃的警告

ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象

RuntimeError 一般的运行时错误

RuntimeWarning 可疑的运行行为(runtime behavior)的警告

StopIteration 迭代器没有更多的值

SyntaxError Python的语法错误

SyntaxWarning 可疑的语法的警告

IndentationError 缩进错误

TabError Tab和空格混合使用

SystemError Python编译器系统错误

SystemExit Python编译器进程被关闭

TypeError 不同类型间的无效操作

UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)

UnicodeError Unicode相关的错误(ValueError的子类)

UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)

UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)

UserWarning 用户代码生成的警告

ValueError 传入无效的参数

ZeroDivisionError 除数为零