return
, throw
, break
, continue
, and yield
statements that are used inside finally
blocks.
These cause the finally
block to not complete normally but to complete abruptly.
Any exceptions thrown from the try
and catch
blocks of the same try
-catch
statement will be suppressed.
Example:
void x() {
try {
throw new RuntimeException();
} finally {
// if bar() returns true, the RuntimeException will be suppressed
if (bar()) return;
}
}