异常处理基本语法:

try:
pass
except Exception,ex:
pass

常用异常种类:

AttributeError    试图访问一个对象,没有的属性。比如foo.x,但是foo没有属性x
IOError 输入/输出异常(基本上是无法打开文件)
ImportError 无法引入模块或包(基本上是路径问题或名称错误)
IndentationError 语法错误的一种,代码缩进不对
IndexError 下标索引超出序列边界,比如当一个列表x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个尚未定义的变量
SyntaxError Python代码非法,代码不能编译
TypeError 传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
ValueError 传入一个调用者不期望的值,即便值的类型是正确的。比如,你要将一个字符串转换成数字:n='abc' int(n)

单个异常抓取:

data = {'id':123}
try:
data['name']
except KeyError as e:
print('没有这个key:',e)

多个异常抓取:

这种方法如果第一个错了,就不会执行后面的异常处理。
data = {'id':123}
list = [1,2]
# 只会处理 KeyError ,后面的IndexError不会处理。
try:
data['name']
list[3]
except KeyError as e :
print('没有这个key:',e)
except IndexError as e :
print('列表操作错误:',e)

多个指定异常,返回同一个结果:

# 多个指定异常,返回同一个结果。
# 只要出现了其中任意一个就会返回。
data = {'id':123}
list = [1,2]
try:
data['name']
list[3]
except (IndexError,KeyError) as e: # 出现指定的错误时,执行。
print('出现了指定错误。')

万能异常:

 不管出现什么错误,都能获取。不建议一开始就是用。

data = {'id':123}
list = [1,2] try:
data['name']
list[3]
except Exception as e: # 抓取任意异常
print('出现了错误。')

其他异常结构:

 except Exception 出现非指定错误时,执行。

 else 没有错误时,执行

 finally 不管有没有错,都执行。

data = {'id':123}
list = [1,2] try:
# data['name']
list['abc']
n = 1
except (IndexError,KeyError) as e: # 出现指定的错误时,执行。
print('出现了指定错误。')
except Exception as e: # 出现非指定错误时,执行。
print('出现了非指定错误!未知错误',e)
else: # 没有错误时,执行。
print('一切正常,没有错误。')
finally: # 不管有没有错,都执行。
print('不管有没有错,都执行这个!')

主动触发异常:

try:
raise Exception('主动触发了异常!')
except Exception as e:
print(e)

自定义异常:

class MyExceptin(Exception):
def __init__(self, msg):
self.msg = msg try:
raise MyExceptin('自定义异常!')
except MyExceptin as e:
print(e)

初识python: 异常处理的更多相关文章

  1. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  2. Python开发【第一篇】:初识Python

    初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  3. Python开发【第二篇】:初识Python

    Python开发[第二篇]:初识Python   Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...

  4. python异常处理(基础)

    之前在学习python的时候有整理过python异常处理的文章,不够简单也不够完整,所以决定再整理一篇,算做补充. http://www.cnblogs.com/fnng/archive/2013/0 ...

  5. 初识python面向对象

    一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...

  6. Python异常处理 分类: python Raspberry Pi 服务器搭建 2015-04-01 13:22 172人阅读 评论(0) 收藏

    一个程序要保持稳定运行必须要有异常处理,本文将简单介绍Python中的try-except..异常处理语句的使用. 该种异常处理语法的规则是: 执行try下的语句,如果引发异常,则执行过程会跳到第一个 ...

  7. Python 异常处理--raise函数用法

    raise语句手工引发一个异常: "raise" [expression ["," expression ["," expression]] ...

  8. [Python学习笔记][第八章Python异常处理结构与程序调试]

    1/30 第八章Python异常处理结构与程序调试 异常处理 try-except结构 try: try块 except Exception: except块 try-except-else结构 tr ...

  9. python异常处理try,except,else,finally,raise

    先看下else的使用: try: ... exception: ... else: ... 只有在try中没有发生任何异常,所有代码完全成功的情况下才会转入else 再看下finally: final ...

  10. 篇2 安卓app自动化测试-初识python调用appium

    篇2              安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...

随机推荐

  1. Centos 7 安装redis,修改配置文件不生效、外网不能访问。

    前提: 在用Centos 7 安装 redis 时,遇上一下几个问题 ,记录下 . 1.修改配置文件,按官网步骤启动,不生效. 2.外网无法访问redis. 步骤: 1.打开centos 虚拟机 ,按 ...

  2. redis实例cpu占用率过高问题优化

    目录 一.简介 一.简介 前情提要: 最近接了大数据项目的postgresql运维,刚接过来他们的报表系统就出现高峰期访问不了的问题,报表涉及实时数据和离线数据,离线读pg,实时读redis.然后自然 ...

  3. 转:Sed使用

    awk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了.所以 林妹妹跳了个Topless,他的哥哥sed坐不住了,也一定要出来抖一抖. sed全名叫 ...

  4. msfvenom生成payload命令

    msfvenom生成payload命令 windows: msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp L ...

  5. bootstrap.css 进度条没有动画效果

    操作系统设置会影响浏览器的行为 Win+R 输入 sysdm.cpl ,3 打开 性能 的 设置 确保 窗口内动画控件和元素 被勾选

  6. CF263B Squares 题解

    Content 有 \(n\) 个边长为 \(a_i\) 的正方形,第 \(i\) 个正方形的四个顶点分别是 \((0,0),(0,a_i),(a_i,0),(a_i,a_i)\),我们定义一个点属于 ...

  7. xml数据结构处理

    <data> <country name="Liechtenstein"> <rank updated="yes">2< ...

  8. SpringBoot整合websocket简单示例

    依赖 <!-- springboot整合websocket --> <dependency> <groupId>org.springframework.boot&l ...

  9. github源码下载总结

    总结 下面来自我的经验,仅作参考. 下载时间选择 千万不要选择 晚上下载.下午7点后就不要从github上传或者下载代码,我用的是电信,踩坑: 这段时间后到第二天早上7点之前,这段时间内的上传和下载只 ...

  10. c++计算 char数组CRC算法

    !!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!! 作者:mohist 我使用的OS:win7. 我使用的开发环境:VS2010 + sp1 算法源码: 1 uns ...