Python编程基础篇之异常
一、异常介绍
当Python无法处理程序时就会发生异常,会影响程序的正常执行。异常也是Python的一个对象,表示一个错误。
提示:以下是本篇文章正文内容,下面案例可供参考
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、异常捕获
当Python脚本有发生异常的可能时,就需要捕获异常,避免程序终止执行。
语法
try:
正常程序执行代码块
except:
抛出错误执行代码块
例子:将以下代码进行异常捕获,当代码异常时将ipt赋值为1。
ipt = input('请输入:')
ipt = float(ipt)
print(ipt)
try:
ipt = input('请输入:')
ipt = float(ipt)
print(ipt)
except:
ipt = 1
print(ipt)
异常类型捕获
语法
try:
pass
except 当前异常对象 as e: # e = 当前异常对象
print(e)
例子: 捕获以下代码的异常类型并输出
li = [1, 2, 3]
li[3]
try:
li = [1, 2, 3]
li[3]
except IndexError as e:
print(e)
内置错误类的查询
cmd命令窗口中输入help(builtin)即可查看相应的内置错误类。上面出现的错误类(IndexError, ValueError, NameError等等)都属于Exception这个父类,所以Exception这个类可以捕获到所有子类的异常。
try:
li = [1, 2, 3]
li[3]
except Exception as e:
print(e)
try-except-else
如果程序抛出异常,执行except代码;如果程序正常执行,执行else代码。
try:
正常程序执行代码块
except:
抛出错误执行代码块
else:
程序正常执行后执行此代码
try-finally
不管程序有无异常发生,都将执行finally内部代码。
try:
正常程序执行代码块
except:
抛出错误执行代码块
else:
程序正常执行后执行此代码
finally:
程序异常与否都执行此代码
该处使用的url网络请求的数据。
主动触发异常
语法
raise Exception(‘抛出的异常信息’)
def cook(level):
if level < 5:
raise Exception('没熟,不能吃奥。。。')
try:
cook(4)
except Exception as e:
print(e)
else:
print('您请吃吧!')
自定义异常
当需要自定义满足一些规则时就可以自定义异常。自定义异常通过一个新的异常类自定义名字与内容,并且需要继承Exception类实现。
class ExampleError():
def __init__(self, msg):
self.infor = msg
def __str__(self):
return self.infor
try:
raise ExampleError('Hello, world!')
except ExampleError as e:
print(e)
断言
assert 断言用于判断一个表达式,当表达式条件为False时触发断言异常AssertionError。
语法
assert 断言
注意:断言用于强制用户服从,可捕获,但一般不捕获。