自定义异常修饰符 class (java)

Modifier for custom Exception class (java)

我想在包中定义一个新的自定义异常 class。修饰符应该是什么? 它应该是 public(以防包外的另一个 class 抛出它)还是应该受包保护?什么是正确的做法? 谢谢

这取决于你打算如何使用它。 有些人仅为他们的自定义异常 classes 创建单独的包,在这种情况下,这些异常必须声明为 public.

此外,如果您要在 public class 中使用 throws 子句中的异常 public 方法,您还需要创建异常 public.

但如果您打算仅在特定包内使用它,也可以将您的异常包设为私有。

如果你只想在你的包中抛出和捕获它,你可以将它设为包保护。但我建议将其设置为 public,这样每个人都可以捕获您的特定异常。

另一种方法是 make Exception class public,因此可以被其他包捕获,并允许所有者包抛出异常,您可以在包级别设置构造函数。