Java 对于异常处理,哪种方法更好

Java 对于异常处理,哪种方法更好,java,exception-handling,Java,Exception Handling,哪一种是更好的异常处理方法?为什么 (1) 为整个应用程序定义一个异常,该异常接受字符串消息并显示它。在任何地方使用此异常,并显示适合场景的特定消息 我不知道这为什么不合适 (2) 为应用程序中的每个不同情况定义新的异常类 我觉得这是不合适的,因为在某些情况下,异常只出现在应用程序中的一个位置。e、 g.输入的金额为-ve是否可以仅为应用程序中的单个案例创建一个全新的异常类?明确定义所有不同案例的新异常 假设您正在实现一个解释器/编译器。您将拥有语义验证程序、解释器、代码生成器等模块(当然还有其

哪一种是更好的异常处理方法?为什么

(1) 为整个应用程序定义一个异常,该异常接受字符串消息并显示它。在任何地方使用此异常,并显示适合场景的特定消息

我不知道这为什么不合适

(2) 为应用程序中的每个不同情况定义新的异常类


我觉得这是不合适的,因为在某些情况下,异常只出现在应用程序中的一个位置。e、 g.输入的金额为-ve是否可以仅为应用程序中的单个案例创建一个全新的异常类?

明确定义所有不同案例的新异常

假设您正在实现一个解释器/编译器。您将拥有语义验证程序、解释器、代码生成器等模块(当然还有其他模块)。你想知道当你的程序崩溃时会抛出什么样的异常。哦,这是语义!看,翻译机里有个错误!您希望用户知道,这样他就可以报告更精确的错误


我个人认为,如果每个模块都有单独的异常,那么设计会更好。

为用户关心的每种错误定义一个新的异常。因此,例如,理想情况下,您应该在程序中捕获NullPointerException,并将其转换为CustomerLookupException,以便程序的用户级可以报告“软件错误检索客户”。这很方便,因为您也可以传递原始异常


整体是一个很好的资源。

您应该为每个案例定义一个新的异常

原因是每个
异常都可以独立处理


例如,以不同方式捕获
异常可以让您在某些情况下继续,或在其他情况下结束。

在我看来,您的第一个选项更合适

(1) 为整个应用程序定义一个异常,该异常接受一个字符串msg并显示它。并在所有位置使用它,并提供适当的位置特定信息

甚至我在应用程序中也使用了一个异常。如果为每种类型创建单独的异常,则会增加复杂性。它将有很多冗余代码。
对于表示不同类型的异常,您可以在公共异常本身中传递一个参数(类型或其他内容)。

请详细说明一下。为什么肯定是这样?@Nikunchauhan我到底在做什么:)