05-python中的异常

python的所有的异常都继承自基类: Exception

处理方式和java类似:

path = raw_input(‘input the path‘)
array = path.split(‘/‘)
try :
    module = __import__(‘model.‘ + array[0])
    model = getattr(module, array[0])
    func = getattr(model, array[1])
    func()
except (ImportError, AttributeError, NameError), e:
    print(e)

finally:
    print(‘finally to do‘)

多个异常的捕捉, 可以使用连续的exept或者使用括号进行捕捉

import sys

try:
    f = open(‘myfile.txt‘)
    s = f.readline()
    i = int(s.strip())
except OSError as err:
    print("OS error: {0}".format(err))
except ValueError:
    print("Could not convert data to an integer.")
except:
    print("Unexpected error:", sys.exc_info()[0])
    raiseelse :  print (‘else method‘)

python的异常还有一个else子句, 没有任何异常的时候去执行

自定义异常:

和其他语言一样, python也可以进行自定义异常, 并且抛出;

class MyException(Exception):

    def __init__(self, name):
        self.name = name

    # 重写string方法
    def __str__(self, *args, **kwargs):
        return self.name

在其他地方进行抛出的方法:

try:
    print(‘start...‘)
    raise MyException(‘raise exception‘)
except MyException as err:
    print(err)
finally:
    print(‘finally‘)

使用raise关键字进行抛出

时间: 2024-12-27 22:53:41

05-python中的异常的相关文章

Python中获取异常(Exception)信息

异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序结构.如下所示 try: ... except Exception as e: ... 1.str(e) 返回字符串类型,只给出异常信息,不包括异常信息的类型,如1/0的异常信息 'integer division or modulo by zero' 2.repr(e) 给出较全的异常信息,包括异

Python中获取异常(try Exception)信息

异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置. 这里获取异常(Exception)信息采用try...except...程序结构.如下所示: try: ... except Exception, e: ...经典例子: import traceback print '########################################################' print "1/0 Exception Info" print '---

三十五:python中的异常

Python提供了两个非常重要的功能来处理异常和错误: 1)   异常处理try-.except 2)   断言assert 异常和断言,可以用于我们调试python程序,跟踪程序执行状态,尽快排查问题. 35.1 python中的标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 Gene

python中的异常

异常概念 异常是指程序中的例外,违例,影响程序正常执行的情况 异常机制是指程序出现错误后,程序的处理方法 当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理 如果程序执行过程中发生了异常,我们没有进行异常处理,那么程序就会中止执行下面的代码,但是如果我们进行了异常处理,程序会继续执行下面的代码 异常的定义 try: <语句>#可能发生异常的代码 except<名字>: <语句>#如果引发了'name'异常,活的附加的异常对象 else: <语句>

Python 中的异常种类

常用异常 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本上是无法打开文件 ImportError 无法引入模块或包:基本上是路径问题或名称错误 IndentationError 语法错误(的子类) :代码没有正确对齐 IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访问字典里不存在的键 KeyboardInterrupt Ctrl+C被按下 NameE

python中的异常捕获怎么用?

http://www.2cto.com/kf/201301/184121.html http://www.w3cschool.cc/python/python-exceptions.html try: a=b b=c except Exception,e:   #except后面加异常种类 print Exception,":",e try: a=b b=c except Exception,e: print Exception,":",e

Python 中异常嵌套

在Python中,异常也可以嵌套,当内层代码出现异常时,指定异常类型与实际类型不符时,则向外传,如果与外面的指定类型符合,则异常被处理,直至最外层,运用默认处理方法进行处理,即停止程序,并抛出异常信息.如下代码: try: try: raise IndexError except TypeError: print('get handled') except SyntaxError: print('ok') 运行程序: Traceback (most recent call last): File

Python 常用的异常类型

Python中的异常类型 转自 http://blog.csdn.net/fcoolx/archive/2009/05/20/4202872.aspx 1.NameError:尝试访问一个未申明的变量>>>  vNameError: name 'v' is not defined 2.ZeroDivisionError:除数为0>>> v = 1/0ZeroDivisionError: int division or modulo by zero 3.SyntaxErr

Python学习 之 异常

1.python中处理异常的方式 #coding:utf8 filename=raw_input("请输入你要操作的文件") try: f=open(filename) print 'hello' except IOError,msg: print "你指定的文件不存在" except NameError,msg: print "内部变量调用错误" finally: #finally try: #异常嵌套 f.close() except Nam

python 中异常处理

Python中的异常由 try-except [exceptionname] 块处理,例如: def some_function(): try: # Division by zero raises an exception 10 / 0 except ZeroDivisionError: print "Oops, invalid." else: # Exception didn't occur, we're good. pass finally: # This is executed