Java 创建自己的已检查异常

Java 创建自己的已检查异常,java,Java,据我所知,当您有一个应用程序可以从中恢复的错误时,您会使用检查异常。但是,我的应用程序中出现的一些错误不适合Sun已经出现的异常。是否可以创建特定于域的已检查异常(错误做法?)?例如:当应用程序收到两个相等的问题时引发DuplicateQuestionException-->异常。这是我的应用程序可以从中恢复的情况 是的,这是很好的做法。如果现有异常在您的域中没有意义,请不要试图强制使用它。是的,这是一种良好的做法。如果现有异常在您的域中没有意义,请不要试图强制使用它。是的,最好创建自己的异常,

据我所知,当您有一个应用程序可以从中恢复的错误时,您会使用检查异常。但是,我的应用程序中出现的一些错误不适合Sun已经出现的异常。是否可以创建特定于域的已检查异常(错误做法?)?例如:当应用程序收到两个相等的问题时引发DuplicateQuestionException-->异常。这是我的应用程序可以从中恢复的情况

是的,这是很好的做法。如果现有异常在您的域中没有意义,请不要试图强制使用它。

是的,这是一种良好的做法。如果现有异常在您的域中没有意义,请不要试图强制使用它。

是的,最好创建自己的异常,而不是使用原始异常。当您要创建自己的异常时,不要忘记异常层次。

是的,您最好创建自己的异常,而不是使用原始异常。当您要创建自己的异常时,不要忘记异常层次结构。

是的,当应用程序能够合理地恢复时,最好使用检查过的异常,当Java没有提供合适的异常时,最好使用自定义检查过的异常

来自Josh Bloch的Java第二版:

从第58项开始,关于抛出选中的异常:

“决定是使用已检查还是未检查的基本规则 异常是这样的:对调用方所处的条件使用选中的异常 可以合理预期恢复。”

关于扩展现有例外的第60项:


“另外,如果您想添加更多的故障捕获信息,请随意对现有异常进行子类化。”

是的,当应用程序能够合理地恢复时,最好使用检查过的异常,并且当Java没有提供合适的异常时,使用自定义检查过的异常是完全合理的

来自Josh Bloch的Java第二版:

从第58项开始,关于抛出选中的异常:

“决定是使用已检查还是未检查的基本规则 异常是这样的:对调用方所处的条件使用选中的异常 可以合理预期恢复。”

关于扩展现有例外的第60项:


“此外,如果您想添加更多的故障捕获信息,请随意对现有异常进行子类化。”

是。非常好。查看如何创建自定义异常有什么好处?创建用户定义的已检查异常是一种好做法,您可以从中恢复并继续使用应用程序代码。您可以提供一种方法来检查是否可以添加问题
if(!Questions.isDuplicate(newQuestion)){Questions.add(newQuestion);}
并抛出一个未检查的异常,如果创建了重复的问题,则抛出一个
IllegalArgumentException
。这可能不适用于您的用例。是。非常好。查看如何创建自定义异常有什么好处?创建用户定义的已检查异常是一种好做法,您可以从中恢复并继续使用应用程序代码。您可以提供一种方法来检查是否可以添加问题
if(!Questions.isDuplicate(newQuestion)){Questions.add(newQuestion);}
并抛出一个未检查的异常,如果创建了重复的问题,则抛出一个
IllegalArgumentException
。这可能不适用于您的用例。