学着忘着,果然还是得写博客整理整理思路加深一下印象,为自己的健忘制定Plan B嘻嘻~
异常
首先说一下什么是异常。异常是一个事件,从字面意思上来看,异常就是在程序运行过程中发生的错误,会影响程序的正常运行。在python中,异常即一个python对象,表示一个错误,当py脚本出现异常时,我们需要及时对异常进行捕捉,否则程序就会终止运行。
python常见异常
IndentationError —- 缩进错误
ImportError —- 导入模块错误
KeyError—- 映射中没有这个键
SyntaxError —- python语法错误
IOError —- 输入/输出异常;基本上是无法打开文件
KeyboardInterrupt —- 中途突然结束任务
等等….还有好多….有用到的查查手册什么的好了
异常处理
我们可以通过try/except语句来捕捉异常,通常,try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。 简言之,我们在try下对一段代码进行试运行,若检测到expect中的错误,则立即进行处理。如果你不想在异常发生时结束你的程序,只需要在try里捕获它。
eg:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author: zhuzhuzhu time:2018/4/13
import time
for i in range(1, 20):
try:
print("Number\t\t%d" % i)
time.sleep(0.5)
except KeyboardInterrupt:
print("I'm doing an important task now!!")
continue # 抛出异常之后打印提示语并且继续执行程序
try/except语法实例:
try:
试运行
except:
发生异常,执行这块代码
else:
没有异常执行这块代码
其中,使用except可以带多个异常,表示若发生多个异常中的一个,则执行之后的语句。
try/finally语句
try-finally 语句无论try块是否抛出异常,永远执行的代码。通常用来执行关闭文件,断开服务器连接的功能等等。
try:
<语句>
except MyException:
<语句>
finally:
<语句> #退出try时总会执行
手动触发异常
raise + 异常
自定义异常
class MyException(Exception): # 这里定义一个异常
pass
try:
#some code here
raise MyException # 触发异常
except MyException: # 抓取异常
print("MyException encoutered")