一)捕获异常
格式一:
try:
<语句>
except <异常1>:
<语句>
except <异常2>:
<语句>
else: 如果没有异常,则执行else块中的语句
<语句>
格式二:
try:
<语句>
finally:
<语句>
不管try语句块中是否发生异常,都将执行finally语句块。
- >>> l = [1,2,3]
- >>> l[5]
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- IndexError: list index out of range
- >>> try:
- ... l[5]
- ... except: #此处未使用异常名,表示捕获所有异常
- File "<stdin>", line 3
- except: #此处未使用异常名,表示捕获所有异常
- ^
- SyntaxError: invalid syntax
- >>> try:
- ... l[5]
- ... except: #此处未使用异常名,表示捕获所有异常
- ... print 'Error'
- ... else:
- ... print 'No error'
- ...
- Error
- >>> try:
- ... l[2]
- ... except:
- ... print 'error'
- ... else:
- ... print 'No error'
- ...
- 3
- No error
- >>> try:
- ... l[2]
- ... finally:
- ... print 'a'
- ...
- 3
- a
- >>> try:
- ... l[5]
- ... finally:
- ... print 'a'
- ...
- a
- Traceback (most recent call last):
- File "<stdin>", line 2, in <module>
- IndexError: list index out of range
- >>>
二)处理异常:
AttributeError: 调用不存在的方法引发的异常
EOFError: 遇到文件末尾引发的异常
ImportError: 导入模块出错引发的异常
IndexError: 列表越界引发的异常
IOError: I/O 操作引发的异常,如打开文件出错等
KeyError:使用字典中不存在的关键字引发的异常
NameError:使用不存在的变量名引发的异常
TabError: 语句块缩进不正确引发的异常
ValueError: 搜索列表中不存在的值引发的异常
ZeroDivisionError: 除数为零引发的异常
except语句主要有以下几种用法:
except: 捕获所有异常
except <异常名>:
except <异常名1,异常名2>: 捕获异常名1或者异常名2
except <异常名>, <数据>: 捕获指定异常及附加的数据
except (异常名1,异常名2), <数据>: 捕获异常名1或者异常名2及异常的附加数据
- >>> l = [1,2,]
- >>> try:
- l[5]
- except IndexError,Error
- SyntaxError: invalid syntax
- >>> l = [1,2,3]
- >>> try:
- l[5]
- except IndexError,errorMessage:
- print errorMessage
- else:
- print 'No Error'
- list index out of range
- >>> try:
- l[2]/0
- except (IndexError,ZeroDivisionError): #捕获IndexError异常或者ZeroDivisionError异常
- print 'Error'
- else:
- print 'No error'
- Error
- >>> try:
- l[5] / 0
- except:
- print 'Error'
- else:
- print 'No error'
- Error
- >>> try:
- l[2]/0
- except (IndexError,ZeroDivisionError),value: #捕获IndexError或ZeroDivisionError异常,及其附加数据
- print value
- integer division or modulo by zero
- >>>
3)多重异常处理
如果except能够处理该异常,则外围的try语句将不会捕获异常。如果except忽略该异常,则异常将被外围try语句捕获。
- >>> try:
- ... try:
- ... l[5]
- ... except:
- ... print 'error1'
- ... except:
- ... print 'error2'
- ... else:
- ... print 'no error'
- ...
- error1
- no error
- >>> try:
- ... try:
- ... l[1]/0
- ... except IndexError:
- ... print 'error1'
- ... except:
- ... print 'error2'
- ... else:
- ... print 'no error'
- ...
- error2
- >>> try:
- ... try:
- ... l[1]/'s'
- ... except IndexError:
- ... print 'error1'
- ... except ZeroDivisionError:
- ... print 'error2'
- ... else:
- ... print 'no error'
- ...
- Traceback (most recent call last):
- File "<stdin>", line 3, in <module>
- TypeError: unsupported operand type(s) for /: 'int' and 'str'
- >>>
二)引发异常:
在python中可以通过使用raise语句手工引发异常。在类中也可以使用raise引发异常,并向异常传递数据。使用raise可以定义新的错误类型,以适应脚本的需要。
- >>> class A:
- def show(self):
- print 'A'
- >>> try:
- raise A
- except A:
- print 'error'
- else:
- print 'No error'
- error
- >>>
自定义异常类:
- >>> class MyError(Exception):
- def __init__(self,data): #重载__init__方法
- self.data = data
- def __str__(self):
- return self.data #重载__str__方法
- >>> raise MyError,'error'
- Traceback (most recent call last):
- File "<pyshell#110>", line 1, in <module>
- raise MyError,'error'
- MyError: error
- >>> try:
- raise MyError,'raise MyError'
- except MyError,data:
- print data
- else:
- print 'no error'
- raise MyError
- >>>
原文章地址:http://blog.csdn.net/guopengzhang/article/details/5455341
相关推荐
常见的Python异常包括IndexError(索引超出范围)、TypeError(操作符或函数应用于不兼容的类型)、KeyError(访问字典中不存在的键)、ValueError(值错误,如将非数字字符串转换为整数)、NameError(使用了未定义...
"Python 异常处理" Python 是一种高级编程语言,它提供了一个强大的异常处理机制,以便开发者能够更好地处理程序中的错误和异常。在 Python 中,异常是一种特殊的对象,它可以在程序执行过程中抛出,以便通知开发者...
在Python编程语言中,异常处理是一项至关重要的技能,它允许程序员优雅地处理程序运行时可能出现的错误或异常情况。在Python中,异常是通过`try/except`块来捕获和处理的,而`else`和`finally`子句则提供了更高级别...
Python提供了一套完整的异常处理机制,允许开发者捕获和处理程序运行时发生的错误。通过合理地使用异常处理,可以提高程序的用户体验和错误容忍度。本文将详细介绍Python中的异常处理机制,包括异常的捕获、处理、抛...
自定义异常类是Python异常处理机制的一个重要组成部分。通过定义自定义异常类,你可以创建更清晰、更易于维护的代码,并提供更详细的错误信息。本文介绍了如何定义自定义异常类,以及如何在程序中使用它们。希望这些...
什么是异常处理?什么情况下会发生异常?了解常见异常类,异常处理的语句,try ... except,多个except语句和一个except块
### Python异常处理与调试 #### 一、Python异常基础 ##### 1.1 异常的概念 在Python编程中,**异常**是一种用于处理程序运行时错误的机制。当程序遇到无法处理的情况时(例如除数为零、文件不存在、网络连接失败...
所谓异常处理,就是指程序在出现问题时依然可以正确的执行剩余的程序,而不会因为异常而终止程序执行。 Python 中引进了很多用来描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行...
Python异常处理
问答互动引出学习目标 讲授法 示范练习 随堂报告 Python-异常处理-教学设计全文共6页,当前为第1页。Python-异常处理-教学设计全文共6页,当前为第1页。《异常处理》教学设计 Python-异常处理-教学设计全文共6页,...
Python异常处理函数和模块学习教案.pptx
刚开始学习python很不容易理解,python在线教学中异常处理
Python 异常处理学习 Python 异常处理是 Python 编程语言中的一种错误处理机制,用于捕捉和处理程序中出现的异常情况。Python 中的异常处理可以分为两种:try-except 语句和 try-finally 语句。 try-except 语句的...
内容概要:本文详细介绍了 Python 中的异常处理机制,包括什么是异常、为何需要捕获异常以及具体的捕获方法(如捕获常规异常、特定异常、多种异常)、其他异常用法(如打印异常信息、else 子句和 finally 子句)和...
Python异常处理是编程中至关重要的一个部分,它允许程序员优雅地处理程序运行时可能出现的错误情况,而不是让程序突然崩溃。异常是程序在执行过程中遇到的错误,它们是Python对象,表示程序运行中的异常状态。当...
翻译自StackOverflow中一个关于Python异常处理的问答。 问题:为什么“except:pass”是一个不好的编程习惯? 我时常在StackOverflow上看到有人评论关于except: pass的使用,他们都提到这是一个不好的Python编程习惯...
自定义异常类是Python异常处理机制的一个重要组成部分。通过定义和使用自定义异常,开发者可以创建更清晰、更具体的错误处理逻辑。本文介绍了如何定义自定义异常类,如何抛出和捕获它们,以及在使用自定义异常时的...
Python是一种广泛应用于数据分析和后处理的强大编程语言,其简洁易读的语法和丰富的库使得处理数据变得简单高效。本资料主要聚焦于如何使用Python进行数据的读取、处理和分析,旨在帮助初学者掌握基本的Python数据...
Python提供了一套完整的异常处理机制,使得开发者可以捕获并处理程序运行时出现的错误。本文将详细介绍Python中的异常处理机制,包括异常的捕获、处理和抛出。 异常处理是编程中一个重要的概念,它允许程序在发生...