Have you ever worked with a library who throws an exceptions but there’s not possible recovery for you and you simply want to move on with a default value or null?
I’ve had the “fun” to work with something like this lately and all the exception handling cluttered my code. I’m using the IMarker-API as an example
private Annotation transform(IMarker m) {
String type;
try {
type = marker.getType();
} catch(CoreException e) {
type = "Unknown";
}
return new Annotation(type,....);
}
In the ideal case IMarker would have similar as it has for getAttribute() a method who allows to define a default instead of throwing the exception but apparently this not the case and could only be fixed when adopting Java8.
So I’ve add a set of helper methods to deal with APIs who throw exceptions and now I can write:
import static org.eclipse.fx.core.function.ExExecutor.*;
private Annotation transform(IMarker m) {
return new Annotation(
executeSupplierOrDefault(m::getType, e -> "Unknown"), .....);
}