SuNu11 发表于 2016-8-31 11:29

【笔记】 python学习笔记 关于异常

本帖最后由 SuNu11 于 2016-8-31 13:58 编辑

一、简述异常概念与常见错误类
二、try...except语句与实例描述
三、引发异常与实例描述
四、try..finally、try...except语句介绍
一、简述异常概念与常见错误类
异常:是指程序中的例外,违例情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。
Exception类是常用的异常类,该类包括StandardError,StopIteration, GeneratorExit, Warning等异常类。
StandardError类是python中的错误异常,如果程序上出现逻辑错误, 将引发该异常。StandardError类是所有内敛异常的基类,放置在默认的命名空间中,因此使用IOEroor,
EOFError, ImportError等类,不需要导入exception模块。
StopIteration类判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。
GeneratorExit类是由Generator函数引发的异常,当调用close()时引发该异常。
Warning类表示程序中的代码引起的警告。
python中的异常使用继承结构创建,可以在异常处理程序中捕获基类异常,也可以捕获各种子类异常,python中使用try...except语句捕获异常,异常子句定义在try子句后面。
错误:SyntaxError 错误位置    错误处理器

二、try...except语句与实例描述try..except          使用try..except语句来处理异常。我们把通常的语句放在try-块中,而把我们的错误处理语句放在except-块中。
import sys
try:
          s = raw_input('something:')                                       所有可能引发错误的语句
except EOFError:
         print '错误提示语句'
         sys.exit()            退出程序
except:         如果try里面的语句无法正确执行,那么就执行except里面的语句,这里面可以是错误信息或者其他的可执行语句
         print '错误语句'   
print 'Done'
可以加finally:不管是否有异常,都要执行某段代码
else:如果try里面的语句可以正常执行,那么就执行else里面的语句(相当于程序没有碰到致命性错误)

三、引发异常与实例描述
引发异常
可以使用raise语句引发异常。还得指明错误/异常的名称和伴随异常触发的异常对象。可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。

class asdException (Exception):      定义一个异常类,自定义的异常类必须是Exception或者Error的子类!
    '''A user-defined exception class.'''   
def __init__(self,length,atleast):          #调用基类的__init__进行初始化
      Exception.__init__(self)
      self.length = length
      self.atleast = atleast
try:                                                
    s = raw_input('Enter something:')      
    if len(s) < 3:                        输入长度小于三
      raise asdException(len(s),3)             使用raise语句来引发一个异常一旦执行了raise语句,raise后面的语句将不能执行。
except EOFError:                            捕获EOFError 异常
    print '\nWhy did you do an EOF on me?'
except asdException, x:                  x为asdException 的具体实例
    print 'ShortInputException: The input was of length %d,was expecting at least %d' % (x.length,x.atleast)
else:                                  只有在try中没有异常才执行else语句
    print 'No exception was raised.'

四、try..finally、try...except语句介绍
try..finally、try...except用于处理问题语句,捕获可能出现的异常。try子句中的代码块放置可能出现异常的语句,except子句中的代码块处理异常。在try下可以同时使用except和finally块,同时使用必须把一个嵌入另外一个。








-Zing- 发表于 2016-8-31 14:34

SuNu11 发表于 2016-8-31 18:40

-Zing- 发表于 2016-8-31 14:34
哦。不。你理解错了。笔记你不可能只发这一个吧, 应该有好几个笔记。http://www.52pojie.cn/thread-391498 ...

我明白你的意思了,我的笔记没发帖,这个是觉得挺难记住就发了一下,其他的都本地保存了~~
做教程现在还为时过早,等学熟练了会考虑弄一套的

-Zing- 发表于 2016-8-31 11:53

SuNu11 发表于 2016-8-31 13:51

-Zing- 发表于 2016-8-31 11:53
应该有一个汇总。目录

嗯,谢谢,第一次写这个 马上改

-Zing- 发表于 2016-8-31 14:37

zangyi 发表于 2016-8-31 14:38

mark一下,感谢分享{:301_997:}

水稻 发表于 2016-8-31 18:16

有机会学学,这个不错

-Zing- 发表于 2016-9-2 09:19

SuNu11 发表于 2016-9-2 10:15

-Zing- 发表于 2016-9-2 09:19
像这样的笔记我都是记在博客园这样的论坛里。

嗯,下次会放有意义的东西
页: [1] 2
查看完整版本: 【笔记】 python学习笔记 关于异常