所有类的方法都抛出相同的例外

时间:2014-06-25 21:39:50

标签: java exception

我有一个基于某些条件构造和返回对象的类,类中的每个方法抛出相同的异常,我想减少重复相同的次数:

public Foo getFoo() throws FileNotFoundException, IOException { ... }

有没有办法声明一个类的每个方法都抛出同一组异常?

2 个答案:

答案 0 :(得分:5)

没有办法声明特定类的所有方法都抛出相同的异常集(从jdk 1.8u5开始)

答案 1 :(得分:-3)

微软没有开箱即用的解决方案。您可以在应用程序级别处理异常,但不能在类级别处理。

但仍有办法解决所有问题。例如,使用自定义属性,您可以自己创建自定义属性

http://msdn.microsoft.com/en-us/library/sw480ze8.aspx

如果您不想自己创建自定义属性,那么现有的库可以帮助您调用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) {
                // ...
          }

     }