python和现代很多编程语言一样提供了异常处理机制,它向程序员提供了一种在运行时发现错误,进行恢复处理,然后继续执行的能力就是 : try-except结构,这个结构和我之前抛出错误博客中的try-catch结构很相似。
运行时发生异常,解释器查找相应的处理语句(handler)。要是在当前函数里没有找到,就将异常传递给上层调用函数,让上层尝试处理,如果直到最外的全局层都没有找到,就会打印出traceback,让用户找出错误原因进行修改。
虽然大多数错误都会导致异常,但是一个以唱不一定代表有错误发生(例如程序员不看alarm,只看error),有时它们也做为一个通知上层退出循环的信号等其他用处。
异常处理可以处理一个简单的异常到一系列多个不同的异常类型:
try:
‘和其他语言差不多,再此处添加测试语句’
except ¥name¥, e:
¥name¥是异常的命名
统一段语句可以处理多个异常类型,只需要把它们放进元组就可以,或者为多个异长创建对应的多个处理语句:
try:
get_item_information()
except (TypeError,ValueError),e:
print "ERROR: you get an error data",e
except ArithmeticError,e:
print "ERROR: some error about admin is occurred",e
(英语语法不保证对,之前忘记提醒异常的命名是每个单词首字母大写基本上是第一个字母和error的e大写)
而所有异常的根类(root class)Exception也可以被except语句作为异常名使用,所以有哪一个异常被前面设计的诸多语句放过的话可以在最后加上它一网打尽。
当不关心异常引发怎样的错误时,可以使用try-finally语句无论异常引发怎样的错误finally中的内容都会执行,没有发生异常和发生异常时try语句结束后,finally中的内容都会执行。但是他不会消除异常,异常仍然会在调用连理寻找能处理它的语句,直到被用户看到(就好象买火柴的小女孩找不到顾客就升天去了一样)。
和其他语言一样除了捕捉和无视异常外,python也能抛出异常就是raise语句,但其实可以看成是一个特殊的打印机制,当满足条件时(因为关于异常的捕获后抛出所以应该说的是不满足条件么?就使用者条语句的情况而言,不,应该说是所有语句的执行都是因为符合上面的条件所以才执行了下面的语句)就执行打印,这个打印格式已经确定,即:
raise TypeError("ERROR foo(): something you want to say to help you kill the question" #sometime really want to kill every question what happened in my computer)
当然说是打印也不完全对,这里只是打个比方
以下一些常见的异常(虽然永远都不要见到最好):
AssertionError assert(断言)语句失败
AttributeError 试图访问对象所没有的一个属性
IOError 输入输出异常,基本上是无法打开文件
ImportError 无法引入模块或者包,基本上是路径问题
IndentationError 语法错误,python中应该就是对齐问题
IndexError 索引错误,索引超出长度,一般是提前删除了一个还要访问的数据信息
KeyError 试图访问字典中不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError python代码不能编译
TyprError 传入数据类型与要求不符合,太常见了,已经到了出现就不知道怎么改的地步了。
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它。所以说不要轻易设置全局变量
ValueError 传入一个调用者不期望的值(哪怕类型正确,它怎么知道不需要的)
在Django框架下使用python语言,这个框架中也使用了异常,虽然大都在内部处理掉了不进入日常的界限,但是类似于http404之类的异常还是需要用户直接使用的,这样就不会只是传回一个特殊标志,而是接到异常通知就转去处理错误。
分享到:
相关推荐
常见的Python异常包括IndexError(索引超出范围)、TypeError(操作符或函数应用于不兼容的类型)、KeyError(访问字典中不存在的键)、ValueError(值错误,如将非数字字符串转换为整数)、NameError(使用了未定义...
"Python 异常处理" Python 是一种高级编程语言,它提供了一个强大的异常处理机制,以便开发者能够更好地处理程序中的错误和异常。在 Python 中,异常是一种特殊的对象,它可以在程序执行过程中抛出,以便通知开发者...
自定义异常类是Python异常处理机制的一个重要组成部分。通过定义自定义异常类,你可以创建更清晰、更易于维护的代码,并提供更详细的错误信息。本文介绍了如何定义自定义异常类,以及如何在程序中使用它们。希望这些...
### Python异常处理与调试 #### 一、Python异常基础 ##### 1.1 异常的概念 在Python编程中,**异常**是一种用于处理程序运行时错误的机制。当程序遇到无法处理的情况时(例如除数为零、文件不存在、网络连接失败...
Python异常处理
Python 异常处理学习 Python 异常处理是 Python 编程语言中的一种错误处理机制,用于捕捉和处理程序中出现的异常情况。Python 中的异常处理可以分为两种:try-except 语句和 try-finally 语句。 try-except 语句的...
Python异常处理是编程中至关重要的一个部分,它允许程序员优雅地处理程序运行时可能出现的错误情况,而不是让程序突然崩溃。异常是程序在执行过程中遇到的错误,它们是Python对象,表示程序运行中的异常状态。当...
翻译自StackOverflow中一个关于Python异常处理的问答。 问题:为什么“except:pass”是一个不好的编程习惯? 我时常在StackOverflow上看到有人评论关于except: pass的使用,他们都提到这是一个不好的Python编程习惯...
Python异常处理函数和模块学习教案.pptx
Python异常处理是编程中至关重要的一个环节,它允许程序员优雅地处理程序运行时可能出现的错误,确保程序在遇到问题时不会突然崩溃。本教程通过30页的PPT课件,详细介绍了Python中的异常处理机制,帮助初学者掌握这...
Python异常处理是编程中至关重要的一个部分,它允许程序员优雅地处理程序运行时可能出现的错误,防止程序因未预期的状况而突然终止。在Python中,异常是通过异常对象来表示的,这些对象通常是在遇到错误时自动创建的...
Python异常处理是编程中至关重要的一个部分,它允许程序员优雅地处理程序运行时可能出现的错误。在Python中,异常是程序执行过程中导致流程中断的事件。这些异常可能是由于语法错误、除以零、文件未找到等操作引起的...
Python 异常处理是编程中不可或缺的一部分,它允许我们在代码执行过程中捕获并处理可能出现的错误,从而确保程序的稳定性和健壮性。本文将详细解释如何使用 `try...except` 结构,以及如何通过 `else` 和 `finally` ...
Python提供了一套完整的异常处理机制,允许开发者捕获和处理程序运行时发生的错误。通过合理地使用异常处理,可以提高程序的用户体验和错误容忍度。本文将详细介绍Python中的异常处理机制,包括异常的捕获、处理、抛...
### Python异常处理详解 #### 一、Python异常处理概述 Python是一种高级编程语言,它具有丰富的面向对象特性,包括强大的异常处理机制。异常处理在Python中是非常重要的一个方面,它可以帮助程序员有效地处理程序...
Python异常处理(markdown文档教程).md
什么是异常处理?什么情况下会发生异常?了解常见异常类,异常处理的语句,try ... except,多个except语句和一个except块
Python异常处理函数和模块PPT课件.pptx