Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 例外情况应该有多普遍?_Java_Exception_Exception Handling - Fatal编程技术网

Java 例外情况应该有多普遍?

Java 例外情况应该有多普遍?,java,exception,exception-handling,Java,Exception,Exception Handling,在Java中,我的已检查异常应具有多大的通用性 我应该更频繁地使用以下两个示例中的哪一个:UserNotFoundException或EntityNotFoundException(通用输入) 谢谢 尽可能具体。这种特殊性只会增加调试错误的人员可用的信息量。通常的做法是声明一个函数抛出一个通用异常,但当代码实际抛出该异常时,它抛出一个(可能更)特定的异常,该异常是所声明异常的子类 比如: public void test() throws IOException { if(openFil

在Java中,我的已检查异常应具有多大的通用性

我应该更频繁地使用以下两个示例中的哪一个:
UserNotFoundException
EntityNotFoundException
(通用输入)


谢谢

尽可能具体。这种特殊性只会增加调试错误的人员可用的信息量。通常的做法是声明一个函数抛出一个通用异常,但当代码实际抛出该异常时,它抛出一个(可能更)特定的异常,该异常是所声明异常的子类

比如:

public void test() throws IOException
{
    if(openFile(FILE_NAME) == null) throw new FileNotFoundException("Check FILE_NAME.");
}

你应该尽可能地把它们具体化。其他错误可能会发生,你并不打算,因此,不知道如何处理。只有在您确切知道如何处理常规异常时才使用它们。换句话说,定义UserNFE和EntityNFE(UserNFE扩展EntityNFE)并抛出您可以抛出的最特定异常。这允许调用方以适当的特定性处理异常。另一方面,异常过多也是一个常见问题。特别是随着时间的推移,当人们想出5个不同的异常类时,它们的意思都是相同的,但略有不同。@GhostCat:如果可以合理地预期消费代码希望以不同的方式响应所有这些不同的异常类型,那么仍然值得让它们成为不同的类型。在只需要一揽子错误处理逻辑的情况下,它们总是可以捕获不太特定的异常类型。