码迷,mamicode.com
首页 > 编程语言 > 详细

[Python基础]008.异常

时间:2015-06-16 22:33:44      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

异常


异常处理

捕获异常

  • try/except 与C,java等语言用try/catch来捕获异常相似,Python使用try/except
  • try/except/finally 无论是否有异常都会执行finally下的语句
  • try/except/else 没有抛出异常时执行else下的语句

代码

try:
    f = open(data.txt)
    f.read()
    print zz
    print 5/0
except IOError, e:              # 捕获IO异常,变量e接收具体的错误信息
    print e
except NameError, e:            # 捕获名字异常
    print e
except Exception, e:            # 捕获剩下的其他异常
    print e

else:                           # 没有异常时执行
    print no error            

finally:                        # 无论有无异常都会执行的内容
    print do anyway

 

抛出异常

  • raise 抛出一个异常

代码

def error_fun():
    raise Exception(it is an error function)  # 抛出一个通用异常Exception

# 捕获上面的异常 
try:
    error_fun()
execept Exception, e:
    print e

 

自定义异常

通过继承异常类,就可以自定义异常。最常见的就是直接继承自Exception类。

# 自定义异常
class MyException(Exception):
    def __init__(self, arg, arg2):
        Exception.__init__(self, arg)
        self.arg2 = arg2

# 捕获
try:
    raise MyException(abc, 10)
except MyException, e:
    print e, e.arg2

 

一些常见的异常

  • Exception 基础异常
  • ZeroDivisionError 除数为0异常
  • OverflowError 内存溢出
  • ImportError 导入模块异常
  • NameError 没有声明对象
  • RuntimeError 一般运行时异常
  • NotImplementedError 未实现方法
  • SyntaxError 语法错误
  • IOError IO操作异常
  • ...

 

 技术分享

本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4581764.html

 

 

 

[Python基础]008.异常

标签:

原文地址:http://www.cnblogs.com/superdo/p/4581764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!