zoukankan      html  css  js  c++  java
  • 面向对象-08-自定义异常

    '''
    1.自己写几个继承Exception的异常类,在自己写的类中,定义当异常出现时要执行的代码.
    (Exception为所有异常的基类,因为Exception会帮你实现捕获异常的功能)
    eg:
    import os
    class ExistsError(Exception):
    pass
    class keyInvalidError(Exception):
    pass
    def func(path,prev):
    """
    要求该方法实现:去path路径的文件中,找到前缀为prev的一行数据,获取数据并返回给调用者
    1000,成功
    1001,文件不存在
    1002,关键字为空
    1003,未知错误
    """
    response = {'code':1000,'data':None}
    try:
    if not os.path.exists(path):
    raise ExistsError('文件不存在')
    if not prev:
    raise KeyInvalidError('关键字为空')
    # except是来捕获异常的,代码执行时是先执行try中的主代码,当主代码抛出异常时,按异常的编写顺序依次匹配.也即先看是不是ExistsError
    异常,若是则代码终止,不再继续执行接下来的异常,若不是则再匹配keyInvalidError异常,接下来的步奏同ExistsError一样.
    except ExistsError as e:
    response['code'] = 1001
    response['data'] = '文件不存在'
    except keyInvalidError as e:
    response['code'] = 1002
    response['data'] = '关键字为空'
    except Exception as e:
    response['code'] = 1003
    response['data'] = '未知错误'

    2.把主体代码放在try中,把异常代码单独拿出来.这种代码格式是为了方便别看你代码,因为我们一般看别人的代码看的都是try中的.如果你把异常处理也放在try中
    会显得你的主体代码非常臃肿.

    '''
  • 相关阅读:
    base64转图片的两种方式
    perl表达 匿名数组和匿名哈希
    perl语言中的定义枚举
    两个字符串连接输出乱码问题解决
    perl LibXML模块使用详解
    SQL优化-标量子查询(数据仓库设计的隐患-标量子查询)
    CDH版hbase-0.98.1单机安装
    CDH版本hadoop2.6伪分布式安装
    MYSQL数据的安装、配置
    Redis介绍、安装部署、操作
  • 原文地址:https://www.cnblogs.com/gongteng/p/13567144.html
Copyright © 2011-2022 走看看