Java 类的所有方法都抛出相同的异常
我有一个类,它基于某些条件构造和返回对象,类中的每个方法都会抛出相同的异常,我希望减少重复相同操作的次数:Java 类的所有方法都抛出相同的异常,java,exception,Java,Exception,我有一个类,它基于某些条件构造和返回对象,类中的每个方法都会抛出相同的异常,我希望减少重复相同操作的次数: public Foo getFoo() throws FileNotFoundException, IOException { ... } 有没有办法声明一个类的每个方法都会抛出相同的异常集?没有办法声明特定类的所有方法都会抛出相同的异常集(从jdk 1.8u5开始)微软没有现成的解决方案。您可以在应用程序级别处理异常,但不能在类级别处理异常 但是仍然有办法做每件事。例如,对于自定义属性
public Foo getFoo() throws FileNotFoundException, IOException { ... }
有没有办法声明一个类的每个方法都会抛出相同的异常集?没有办法声明特定类的所有方法都会抛出相同的异常集(从jdk 1.8u5开始)微软没有现成的解决方案。您可以在应用程序级别处理异常,但不能在类级别处理异常 但是仍然有办法做每件事。例如,对于自定义属性,您可以自己创建自定义属性 如果您不想自己创建自定义属性,那么有一个名为PostSharp的现有库可以帮助您,您可以使用方法/类上的属性进行配置
[Serializable]
public class GeneralExceptionAttribute : OnExceptionAspect
{
public override void OnException(MethodExecutionArgs args)
{
Console.WriteLine(args.Exception.Message);
}
}
然后还可以将该属性应用于整个类,如下所示:
[GeneralException]
public class YourClass
{
// ...
public string DoSomething(int param) {
// ...
}
}
使用所有异常之母。“异常”如果您真的发现编写那些
抛出的子句的工作量太大,那么您的类有太多的方法。如果您想编写枯燥的代码,请尽量不要使用Java。@Raedwald否。这一问题可能会发生在两个方法上,但如果它们抛出“相同”的方法它应该是干的。只需放在一旁:FileNotFoundException
is-aIOException
。因此,只宣布后者就足够了。然而,在层次结构的更高层(声明抛出“异常”,如另一条评论中所述)是我绝对不会推荐的。人们将以捕获异常
结束,并默默地吞下任何不是由(“预期的”)IO错误而是编程错误引起的NullPointerException
。这个问题是关于Java的