python学习-异常处理
小技巧
isinstance(obj,foo)
检查是否obj是否是类 foo 的对象
class Foo(object):
pass obj = Foo() isinstance(obj, Foo)
issubclass(sub, super)
检查sub类是否是 super 类的派生类
class Foo(object):
pass class Bar(Foo):
pass issubclass(Bar, Foo)
异常处理
在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户。
格式:
#Python 2.7 try:
pass
except Exception,ex:
pass # Python 3.x try:
pass
excep Exception as ex:
pass
异常种类
python中的异常种类非常多,每个异常专门用于处理某一项异常!
常用异常:
AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError 传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
导致你以为正在访问它
ValueError 传入一个调用者不期望的值,即使值的类型是正确的 常用异常
Exception为抓取所有异常(不能抓取语法的错误)
实例:
while True:
num_a = input('input a integer')
num_b = input('input a interger')
c = range(10)
try:
num1 = int(num_a)
num2 = int(num_b)
result = num1 + num2
c[11]
except ValueError as e:
print('数据类型出错!',e)
except IndexError as e:
print('索引错误',e)
except Exception as e:
print('未知错误如下:')
print (e)
自定义异常
class exception_handler(Exception):
def __init__(self,msg):
self.message = msg
def __str__(self):
return self.message
a = 1
try:
raise exception_handler('这是一个异常')
except exception_handler as msg:
print(msg)
Finally 及 断言
a = 1
try:
assert a== 2 #断言,对条件进行判断,如果条件成立向下执行。
print('正常执行')
except Exception as msg:
print(msg)
else:#没出现异常打印信息
print('这是一个测试信息')
finally:#不管是否出现异常都打印信息
print('不管条件是否成立,都打印此条信息!')
python学习-异常处理的更多相关文章
- python 学习 异常处理
异常处理实例 while True: num1 = input('num1:') num2 = input('num2:') try: num1 = int(num1) num2 = int(num2 ...
- python学习-异常处理之捕获异常与抛出异常(七)
捕获异常 python完整的异常处理语法结构如下: 特别说明: 1.try块是必需的,except块和finally,当try块没有出现异常时,程序会执行else块 2.try块后只有一个except ...
- Python学习——异常处理
1.异常基础: 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面 基本语法: try: pass except Exception as e: pri ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
- 【python学习-6】异常处理
最近在网上看到了一种学习方法名叫费曼学习法,说的是学习一个东西的时候,要尝试着给别人讲出来,就是一种备课式的学习. 第一步,选择一个你想要理解的概念, 然后拿出一张白纸, 把这个概念写在白纸的最上边. ...
- Python学习系列(九)(IO与异常处理)
Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Pytho ...
- Python学习笔记之异常处理
1.概念 Python 使用异常对象来表示异常状态,并在遇到错误时引发异常.异常对象未被捕获时,程序将终止并显示一条错误信息 >>> 1/0 # Traceback (most re ...
- Python学习进程(14)异常处理
本节介绍Python进行异常处理的方式,异常处理机制可以帮助我们调试python程序. (1)异常的简介: 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行 ...
- Python学习笔记(五)——异常处理
Python 异常总结 异常名称 解释 AssertionError 断言语句(assert)失败:当assert关键字后边的条件为假时,程序将抛出该异常,一般用于在代码中置入检查点 OSError ...
随机推荐
- localStorage兼容ie6/7 用addBehavior 实现
制作过程我就不说了,程序下面会占出来 define(function(){ if('localStorage' in window) return; function Storage(){ this. ...
- linux shell mysql 数据库主从同步状态检查告警
需求: 1.监测数据库主从状态 2.获取数据库主要参数 3.可读取配置文件 4.部署位置自适应. 参考资料: http://blog.csdn.net/yf210yf/article/detail ...
- 国内首家VR虚拟现实主题公园即将在北京推出
近期,美国“The VOID”.澳洲“Zero Latency”两大虚拟现实主题乐园让许多爱好者兴奋至极,门票据说都已经预约到明年2月!在如此巨大的商机面前,谁将抢到国内VR虚拟现实主题公园第一块蛋糕 ...
- HackerRank "Kitty and Katty"
It's more of a brain-teaser than a Game Theory problem.. #!/bin/python3 T = int(input().strip()) for ...
- apache 配置多个虚拟主机,不同的端口
1.在httpd.conf添加多个端口,如下 Listen 80Listen 8080 2.开启Include conf/extra/httpd-vhosts.conf 3.具体代码如下 <Vi ...
- 【MySQL】主备复制
复制对于mysql的重要性不言而喻,mysql集群的负载均衡,读写分离和高可用都是基于复制实现.下文主要从4个方面展开,mysql的异步复制,半同步复制和并行复制,最后会简单聊下第三方复制工具.由于生 ...
- Android学习笔记(五)
Intent不仅用来启动一个活动,Intent还可以在启动活动的时候传递参数. 1.向下一个活动传递数据 启动活动的时候传递数据,Intent提供了一系列putExtra()方法的重载,可以把要传递的 ...
- (C++) CreateThread
先理解一下函数原型: HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, // 指向SECUR ...
- 解决:新版火狐浏览器3d打不开
重启:按 Ctrl + Shift + L 键唤出 3d 视图 参考文档:http://tieba.baidu.com/p/4606488108
- Excel 日期转换
public static void importExcel2(File file) throws Exception, IOException { Workbook book = Workbook. ...