zoukankan      html  css  js  c++  java
  • [Python基础]008.异常

    异常


    异常处理

    捕获异常

    • 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

     

  • 相关阅读:
    Windows下 如何添加开机启动项
    Android在 普通类(非Activity,多数为Adapter) 中 传输数据为空值 解决方法 :在startActivity 用 intent传输数据
    Android 从ImageView中获取Bitmap对象方法
    剑指offer(纪念版)读书笔记【实时更新】
    剑指offer(纪念版) 面试题3:二维数组中的查找
    C++ sizeof 误区 大公司面试题
    51 nod 1521 一维战舰 时间复杂度O(n),同 Codeforces 567D. One-Dimensional Battle Ships 有详细注释
    51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释
    51nod 1451 合法三角形 判斜率去重,时间复杂度O(n^2)
    关于JetBrains CLion 激活 (CLion License Activation)的解决办法,带hosts详细修改
  • 原文地址:https://www.cnblogs.com/superdo/p/4581764.html
Copyright © 2011-2022 走看看