gpt4 book ai didi

java - 对异常使用泛型是否明智?

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:18 25 4
gpt4 key购买 nike

我的团队正在清理我们对 throws Exception 的使用并用特定的异常(exception)删除或替换它们。

一个常见的抛出是因为没有找到一个实体。我们应该抛出一个通用的 NotFoundException 吗?或特定的 SomeClassNotFoundException对于每个实体类?

如果我们应该抛出一个特定的异常,我们是否应该为每个实体类型创建一个特定的异常类?我们可以安全地使用泛型吗?像这样class NotFoundException<T extends EntityBaseClass> extends Exception然后构造函数负责声明我们正在处理的实体类型?

如果我们应该抛出一个特定的异常而不是使用泛型,那么这些异常是否应该扩展或实现 NotFoundException抽象类还是接口(interface)?

最佳答案

不允许将异常设为通用 - 它不会编译 (JLS §8.1.2):

It is a compile-time error if a generic class is a direct or indirect subclass of Throwable

由于泛型的类型参数在运行时被删除,所以在catch子句中无法区分不同类型参数的泛型异常,因此不支持泛型异常。因此,对于使用通用异常,您实际上别无选择。

关于java - 对异常使用泛型是否明智?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6818251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com