python中的异常如何处理
一、异常基础
在编程程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面。
try:
#正常逻辑代码
input = raw_input("输入数字:")
data = int(input) except Exception,e:
#逻辑代码块出现错误,
print '请输入数字!!!'
两个数字相加异常处理:
while True:
number1 = raw_input('number1:')
number2 = raw_input('number2:')
try:
num1 = int(number1)
num2 = int(number2)
res = number1 + number2
print res
except Exception, e:
print '出现异常,信息如下:'
print e
二、异常种类
ArithmeticError
AssertionError
AttributeError
BaseException
BufferError
BytesWarning
DeprecationWarning
EnvironmentError
EOFError
Exception
FloatingPointError
FutureWarning
GeneratorExit
ImportError
ImportWarning
IndentationError
IndexError
IOError
KeyboardInterrupt
KeyError
LookupError
MemoryError
NameError
NotImplementedError
OSError
OverflowError
PendingDeprecationWarning
ReferenceError
RuntimeError
RuntimeWarning
StandardError
StopIteration
SyntaxError
SyntaxWarning
SystemError
SystemExit
TabError
TypeError
UnboundLocalError
UnicodeDecodeError
UnicodeEncodeError
UnicodeError
UnicodeTranslateError
UnicodeWarning
UserWarning
ValueError
Warning
ZeroDivisionError
dic = {'k1':123,'k2':321}
try:
dic['k3']
except KeyError,e:
print '出现异常,信息如下:'
print e
li = ['gavin-guo']
try:
li[100]
except IndexError,e:
print '出现异常,信息如下:'
print e
IndexError
str = 'abc'
try:
int(str)
except ValueError,e:
print '出现异常,信息如下:'
print e
ValueError
上述实例异常只能处理指定异常,如果非指定异常则无法处理
str = 'abc'
try:
int(str)
except IndexError,e:
print '出现异常,信息如下:'
print e
出现错误信息了,则应该这样处理.
str = 'abc'
try:
int(str)
except IndexError,e:
print '出现异常,信息如下:'
print e
except ValueError,e:
print '出现异常,信息如下:'
print e
except KeyError,e:
print '出现异常,信息如下:'
print e
python中有一个异常能捕捉到所有异常:Exception
str = 'abc'
try:
int(str)
except Exception,e:
print e
三、异常的其他结构
try:
# 逻辑代码,连接数据库,执行sql语句
pass
except KeyError,e:
# 异常时,执行该块
pass
else:
# 逻辑码块中未出现异常执行这里的代码
pass
finally:
# 永远执行,主代码块执行完之后执行.断开数据库连接,释放资源
pass
四、主动触发异常
raise Exception('出现错误')
class A:
def a1(self):
return False try:
a = ''
#a = int(a)
re = A()
ret = re.a1()
if ret:
print '成功'
else:
raise Exception() #执行这一行代码,等于直接倒转到下面的except Exception
except Exception,e:
print '出现错误!!'
print e
五、自定义异常
自己定义一个异常,然后调用这个异常
class Gavinerror(Exception):
def __init__(self,date=None):
self.date = date
def __str__(self):
if self.date:
return self.date
else:
return 'Gavin error'
try:
raise Gavinerror()
except Exception,e:
print e
python中的异常如何处理的更多相关文章
- Python中获取异常(Exception)信息
异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...
- Python中获取异常(try Exception)信息
异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置. 这里获取异常(Exception)信息采用try...except...程序结构.如下所示: try: ... exce ...
- 【Python】解析Python中的异常操作
目录结构: contents structure [-] try,except,else,finally块 异常处理 使用except而不带任何异常类型 使用except而带多种异常类型 try-fi ...
- Python基础之:Python中的异常和错误
目录 简介 Python中的内置异常类 语法错误 异常 异常处理 抛出异常 异常链 自定义异常 finally 简介 和其他的语言一样,Python中也有异常和错误.在 Python 中,所有异常都是 ...
- python中的异常
Python提供了两个非常重要的功能来处理异常和错误: 1) 异常处理try-.except 2) 断言assert 异常和断言,可以用于我们调试python程序,跟踪程序执行状态,尽快排查问题. 3 ...
- 一文教你读懂Python中的异常信息
正文共:11813 字 2 图 预计阅读时间: 30 分钟 原文:https://realpython.com/python-traceback/ 译者:陈祥安 原文有所改动. 在写 Python 代 ...
- Python中的异常(Exception)处理
异常 当你的程序出现例外情况时就会发生异常(Exception).例如,当你想要读取一个文件时,而那个文件却不存在,怎么办?又或者你在程序执行时不小心把它删除了,怎么办?这些通过使用异常来进行处理. ...
- Python基础入门知识点——Python中的异常
前言 在先前的一些章节里你已经执行了一些代码,你一定遇到了程序“崩溃”或因未解决的错误而终止的情况.你会看到“跟踪记录(traceback)”消息以及随后解释器向你提供的信息,包括错误的名称.原因和发 ...
- 『无为则无心』Python函数 — 38、Python中的异常
目录 1.异常概念 2.了解异常 3.异常的写法 (1)语法 (2)快速体验 (3)捕获指定异常 (4)异常中的else (5)异常中的finally (6)总结 1.异常概念 定义:程序在运行过程当 ...
随机推荐
- Mybatis的ResultMap的使用(转)
本篇文章通过一个实际工作中遇到的例子开始吧: 工程使用Spring+Mybatis+Mysql开发.具体的业务逻辑很重,对象之间一层一层的嵌套.和数据库表对应的是大量的model类,而和前端交互的是V ...
- sublime的20个插件
SublimeText是一款非常精巧的文本编辑器,适合编写代码.做笔记.写文章.它用户界面十分整洁,功能非同凡响,性能快得出奇.这些非常棒的特性 包括任意跳转(Goto Anything).多重选择( ...
- Android 新兴的UI模式——侧边导航栏【转】
侧边导航栏也就是大家熟知的SliddingMenu,英文也叫Fly-In App Menu.Side Navigation等.当然谷歌现在已经推出类似这个效果的组件--Navigation Drawe ...
- linux网络编程涉及的函数
常用的网络命令: netstat 命令netstat是用来显示网络的连接,路由表和接口统计等网络的信息. netstat有许多的选项我们常用的选项是-an用来显示详细的网络状态.至于其它选项我们使用帮 ...
- SSIS Package 配置多数据库连接语句
- 全面理解js面向对象
前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学 ...
- 移动端开发(四):swiper.js
swiper.js中文网:http://www.swiper.com.cn/ 文档结构 swiper.jquery.js 是需要引用jquery.js 或者 zepto.js 时,只需直接引用该 ...
- 原生javascript实现老.虎机抽奖点名demo源码思路解析
想着使用原生Javascript做一个随机点名的小应用, 也可以做抽奖使用. html简单化,人名单可以通过js生成并处理. 可以非常随意的添加修改人名字. 应用想带点特效,比如老.虎机转动的特效. ...
- BZOJ 2301 Problem b(莫比乌斯反演+分块优化)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=37166 题意:对于给出的n个询问,每次求有多少个数对(x,y),满 ...
- Hibernate学习之hibernate状态
hibernate有三种状态,transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),瞬时状态就是刚new出来一个对象,还没有被保存到数据库中,持久化状态就 ...