这是异常处理的一种更好的方法,更好,为什么?:哪种方式是异常处理
(1)定义整个应用程序,它需要一个字符串消息,并显示一个例外。使用适用于该场景的特定消息随处使用此例外。
我不知道为什么这不合适。
(2)为应用程序中的每个不同情况定义一个新的异常类。
我觉得这是不合适的,因为有些情况下,例外情况只发生在应用程序的一个地方。例如输入的金额是-ve可以为应用程序中的单个案例创建一个全新的异常类吗?
这是异常处理的一种更好的方法,更好,为什么?:哪种方式是异常处理
(1)定义整个应用程序,它需要一个字符串消息,并显示一个例外。使用适用于该场景的特定消息随处使用此例外。
我不知道为什么这不合适。
(2)为应用程序中的每个不同情况定义一个新的异常类。
我觉得这是不合适的,因为有些情况下,例外情况只发生在应用程序的一个地方。例如输入的金额是-ve可以为应用程序中的单个案例创建一个全新的异常类吗?
为与您的用户有关的每种错误定义新的例外。因此,例如,理想情况下,应该在程序中捕获NullPointerException,并将其变为CustomerLookupException,以使程序的用户级别可以报告“软件错误检索客户”。 Exception chaining对此很方便,因为您也可以传递原始异常。
整个Java Tutorial on exceptions是一个很好的资源。
绝对为所有不同情况定义新的例外。
想象一下,您正在实施一个解释器/编译器。你将拥有SemanticVerifier,Interpreter,CodeGenerator等模块(当然还有其他模块)。你想知道什么样的异常会在你的程序崩溃时抛出。哦,这是语义!那里看看它是解释器中的错误!而且你希望用户知道,所以他可以报告更精确的错误。
我个人认为,如果您对每个模块都有单独的例外,它会导致更好的设计。
您应该为每个案例定义一个新的例外。
原因是这样每个Exception
都可以独立处理。
例如,以不同方式捕捉Exception
可以让您在某些情况下继续,或在其他情况下结束。
您的第一选择是更适合
(1)定义整个应用程序,它需要一个字符串味精,并显示一个例外。并在适当的地方特定的消息在所有地方使用它。
即使我在应用程序中使用单个异常。如果您为每种类型创建单独的例外,则会增加复杂性。它会有很多冗余的代码。 为了表示不同类型的异常,您可以在公共异常本身中传递参数(类型或其他)。
请您详细说明一下。为什么肯定这样? – Nik
@NikunjChauhan我在做什么:) – talnicolas