Python异常和异常处理
2017年12月20日 22:17:08 Megustas_JJC 阅读数:114 标签: python 异常处理 更多
个人分类: Python

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Megustas_JJC/article/details/78858288
Python中的异常处理与Java中的做法思路类似,个别细节的地方需要注意下即可,理解起来没有太大问题
try-except块及finally
异常常用小技巧:
(1)在类型转换的地方检查类型转换是否正确
while True:
try:
valueStr = raw_input("Input integer:")
valueInt = int(valueStr) #convert to int(possible exception)
break
except ValueError:
print "Bad input"
1
2
3
4
5
6
7
(2)检查文件打开是否成功
while True:
try:
fileName = raw_input("Open file:")
dataFile = open(fileName)
break
except IOError:
print "Bad file name"
1
2
3
4
5
6
7
对于finally块,与Java一样,即无论如何都会被执行,需要注意的是,当出现类似break关键字,会先执行完finally块中的语句再进行break操作,例如如下的一个小demo:
def processFile(dataFile):
count = 1
for line in dataFile:
print "Line " + str(count) + ":" +line.strip()
count += 1

while True:
fileName = raw_input("Please input a file to open:")
try:
dataFile = open(fileName)
except IOError:
print "Bad file name,try again"
else:
print "processing file",fileName
processFile(dataFile)
break #exit "while" loop(but do "finally" block first)
finally:
try:
dataFile.close()
except NameError:
print "Going around again"

print "Line after the try-except group"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
深入异常——raise与自定义异常
(1)raise 任何时候都能引发异常,而不必等Python来引发,只需要使用关键字raise加上异常的名称
(2)自定义异常:
Python中的异常是类,要创建异常,就必须创建其中一个异常类的子类。通过继承,将异常类的所有基本特点保留下来。例如下面例子,user参数需要是字符串,并且仅由字母或数字组成,否则将会引发用户自定义的异常:
class NameException(Exception):
print "Name is error"
if not isinstance(user,str) or not user.isalnum():
raise NameException

Python异常和异常处理的更多相关文章

  1. Python异常及异常处理

    Python异常及异常处理: 当程序运行时,发生的错误称为异常 例: 0 不能作为除数:ZeroDivisionError 变量未定义:NameError 不同类型进行相加:TypeError 异常处 ...

  2. python 异常

    引用一段来自菜鸟教程的文章:http://www.runoob.com/python/python-exceptions.html Python 异常处理 python提供了两个非常重要的功能来处理p ...

  3. Python 基础之 异常处理

    python 基础之异常处理 说到异常处理,就得先问一下,什么是异常处理?  先来看一下,什么是异常? 异常就是:程序运行时发出的错误的信号. 异常的种类先来看一下: 一.常见的异常 Attribut ...

  4. Python基础---python中的异常处理

    Python中的异常处理 一.什么是异常处理 python解释器检测到错误,触发异常(也允许程序员自己触发异常) 程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关) ...

  5. [Python Study Notes]异常处理

    正则表达式 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理 断言(Assertions) python标准异常 ...

  6. Python系列之 - 异常处理

    python提供的异常处理 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常 ...

  7. python中的异常处理机制

    python中的异常处理 1.什么是异常 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异 ...

  8. Python学习手册之Python异常和文件

    在上一篇文章中,我们介绍了 Python 的函数和模块,现在我们介绍 Python 中的异常和文件. 查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/9963 ...

  9. python——异常except语句用法与引发异常

    except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名1,异常名2):捕获异常1或者异常2 except:<异常名>,< ...

随机推荐

  1. Ubuntu深度学习环境搭建 tensorflow+pytorch

    目前电脑配置:Ubuntu 16.04 + GTX1080显卡 配置深度学习环境,利用清华源安装一个miniconda环境是非常好的选择.尤其是今天发现conda install -c menpo o ...

  2. Runable和Thread

    Java多线程 java中有两种实现多线程的方式: 1. 一种是通过继承Thread类,同时重写run()方法.但是java中,只允许单继承,也就是一个类只能继承一个父类,使得该方式具有一定的局限性, ...

  3. Oracle11g温习-第十九章:审计(audit)

    2013年4月27日 星期六 10:52 1.审计的功能:监控用户在database 的 action (操作) 2.审计分类 1) session :在同一个session,相同的语句只产生一个审计 ...

  4. java集合类整理

    LinkedList 优点:插入删除迅速 缺点:不适合随机访问 List<String> staff = new LinkedList<String>(); staff.add ...

  5. Spring注解之 @EnableScheduling计划任务注解

    要实现计划任务,首先通过在配置类注解@EnableScheduling来开启对计划任务的支持, 然后在要执行计划任务的方法上注解@Scheduled,声明这是一个计划任务 示例:计划任务执行类 在这个 ...

  6. docker 系列之 配置阿里云镜像加速器

    1.登录阿里云 2.登录后找到右上角的“管理中心”,点击进入后>点击“镜像加速器”;剩下的安装文档配置就好 问题1:配置完后还是提示:Tag latest not found in reposi ...

  7. daal utils printNumericTable

    #=============================================================================== # Copyright 2014-20 ...

  8. X-Window/GNOME/KDE的关系

    名称 开发者 开发年份 许可证 语言 说明 X-Window MIT 1984     X-Window是一个C/S架构的桌面框架,KDE和GNOME都是其基础上的具体实现 KDE Trolltech ...

  9. jquery attr方法获取input的checked属性问题

    1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase <input type="checkbox" id= ...

  10. TinyXML C++解析XML

    TinyXML 1.0可以参照上面的说明,获取一些概念. 转:http://blog.csdn.net/L_Andy/article/details/40615517 TinyXML 2.0 可以参照 ...