自定义异常

Posted whileke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义异常相关的知识,希望对你有一定的参考价值。

1.自定义异常

import os

class ExistsError(Exception):   # 自定义异常,将要定义的异常继承Exception,就可以在捕捉异常那里捕捉到
    pass

class KeyInvalidError(Exception):
    pass


def new_func(path,prev):
    """
    去path路径的文件中,找到前缀为prev的一行数据,获取数据并返回给调用者
        1000,成功
        1001,文件不存在
        1002,关键字为空
        1003,位置错误
    :param path:
    :param prev:
    :return:
    """
    response = code:1000,date:None
    try:
        if not os.path.exists(path):
            raise ExistsError()
        if not prev:
            raise KeyInvalidError()
    except ExistsError as e:
        response[code]=1001
        response[date]= "文件不存在"
    except KeyInvalidError as e:
        response[code] = 1002
        response[date] = "关键字为空"
    except Exception as e:
        response[code] = 1003
        response[date] = "未知错误"
    return response

2.如果自定义异常类中需要传值,抛出的时候就需要传值

class MyExceptError(Exception):
    def __init__(self,key,value):
        self.key = key
        self.value = value

try:
    raise MyExceptError(1001,"关键字为空")
except MyExceptError as e:
    print(e)

 

以上是关于自定义异常的主要内容,如果未能解决你的问题,请参考以下文章

Java 求大神们解答:自定义异常,处理异常

Java中的自定义异常捕获方式

自定义异常

Springboot+自定义注解+自定义AOP前置增强+自定义异常+自定义异常捕获

自定义异常(源码)

C# 自定义异常