Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类的所有方法都抛出相同的异常_Java_Exception - Fatal编程技术网

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-a
IOException
。因此,只宣布后者就足够了。然而,在层次结构的更高层(声明抛出“异常”,如另一条评论中所述)是我绝对不会推荐的。人们将以捕获异常
结束,并默默地吞下任何不是由(“预期的”)IO错误而是编程错误引起的
NullPointerException
。这个问题是关于Java的