In C#, I can use the throw; statement to rethrow an exception while preserving the stack trace:

try { ... } catch (Exception e) { if (e is FooException) throw; }

Is there something like this in Java (that doesn't lose the original stack trace)?