This is only because you use exceptions incorrectly. You can (and should) write:
try {
final var fResult = f(g());
//do something with fResult
}catch (E1 e) {...}
catch (En e) {...}
That's the main idea of exceptions in all languages: main flow is kept together and exceptional flows are separate.