• 0.22.6

Unification of Exceptions Thrown from Java Methods

Annotate your methods with @UnitedThrows annotation and every exception thrown out of the method will be an instance of the required type:

public class Thrower {
  @UnitedThrow
  public void do() throws IOException {
    throw new FileNotFoundException();
  }
}

Instead of FileNotFoundException, an IllegalStateException will be thrown which is the default for @UnitedThrow.

Here is another example, but with a custom selected exception:

public class Thrower {
  @UnitedThrow(IOException.class)
  public void save() throws IOException, InterruptedException {
    throw new IllegalStateException();
  }
}

In this case, IllegalStateException will not be thrown. Instead, IOException will be used.

The mechanism is implemented with AOP/AspectJ. Read to know how to integrate it into your pom.xml.