break
or continue
statements inside of finally
blocks.
While occasionally intended, such statements are very confusing, may mask thrown exceptions, and complicate debugging.
Example:
while (true) {
try {
throwingMethod();
} finally {
continue;
}
}