zoukankan      html  css  js  c++  java
  • python异常类

    '''
    python异常类的继承关系
    BaseException是所有异常类的父亲,除了系统退出,按键错误等,其他都是Exception的子类,类的继承关系如下所示
    
    BaseException
     -- SystemExit
     -- KeyboardInterrupt
     -- GeneratorExit
     +- Exception
          -- StopIteration
          +- StandardError
              -- BufferError
              +- ArithmeticError
                  -- FloatingPointError
                  -- OverflowError
                  -- ZeroDivisionError
              -- AssertionError
              -- AttributeError
              +- EnvironmentError
                  -- IOError
                  +- OSError
                      -- WindowsError (Windows)
                      -- VMSError (VMS)
              -- EOFError
              -- ImportError
              +- LookupError
                  -- IndexError
                  -- KeyError
              -- MemoryError
              +- NameError
                  -- UnboundLocalError
              -- ReferenceError
              +- RuntimeError
                   -- NotImplementedError
              +- SyntaxError
                  +- IndentationError
                       -- TabError
              -- SystemError
              -- TypeError
              +- ValueError
                   +- UnicodeError
                        -- UnicodeDecodeError
                        -- UnicodeEncodeError
                        -- UnicodeTranslateError
          +- Warning
               -- DeprecationWarning
               -- PendingDeprecationWarning
               -- RuntimeWarning
               -- SyntaxWarning
               -- UserWarning
               -- FutureWarning
               -- ImportWarning
               -- UnicodeWarning
               -- BytesWarning
    '''
    
    
    '''
    捕获异常
    '''
    
    try:
        a = 1
        b = 2
        print(a+b)
    except ValueError:     #只捕获异常,不对异常信息输出
        print('input number error')
    except IOError as error:   #捕获异常并输出异常信息
        print('io error',error)
    except (IndexError,KeyError) as error:  #捕获多个异常(以元组形式添加)
        print('io error', error)
    except Exception as error:  #捕获所有继承自Exception的异常
        print(error)
        raise AttributeError   #抛出异常
    
    except:   #捕获所有异常
        print('error')
    else:  #未发生异常,必须在except之后
        print('not eror')
    finally:  #无论会不会出现异常,都会执行
        print('next input')
    
    
    '''
    自定义异常类
    '''
    
    class AddException(Exception):   #直接继承
        pass
    
    class InsetException(Exception):
        key_code = 'code'
        key_message = 'message'
        def __init__(self,**kwargs):
            self.code = kwargs[InsetException.key_code]
            self.message = kwargs[InsetException.key_message]
        def __str__(self):
            print('code:{},message:{}'.format(self.code,self.message))
    
    '''
    引用自定义异常类
    '''
    
    raise InsetException(code=15,message='inset error')
  • 相关阅读:
    蛙蛙请教:把一段c算法代码转换成c#代码。
    和病毒折腾了两天
    WawaKM预览版发布,欢迎大家测试反馈哦
    (转)深度分析如何在Hadoop中控制Map的数量
    [转载]JAVA操作符
    (转)Hive Index
    Hadoop++:Hadoop的局部性能改良
    深入了解Hive Index具体实现
    Linux echo命令
    (转)带索引的mapReduce
  • 原文地址:https://www.cnblogs.com/arrow-kejin/p/10404569.html
Copyright © 2011-2022 走看看