Java / Lombok Interview questions
What is @SneakyThrows used for?
@SneakyThrows lets a method throw a checked exception without declaring it in a
throws clause and without wrapping it in a try/catch — Lombok generates bytecode that throws
the checked exception directly, exploiting the fact that the JVM itself doesn't actually enforce checked
exceptions the way the Java compiler does.
@SneakyThrows public void readFile(String path) { Files.readAllBytes(Paths.get(path)); // IOException is checked, but no throws clause needed here }
It's mainly used to avoid boilerplate try/catch-and-rethrow-as-unchecked patterns, particularly in
functional interfaces (like a lambda passed to Stream.map) where checked exceptions are awkward to
propagate. It's controversial precisely because it bypasses the compiler's checked-exception enforcement,
which some teams consider valuable and don't want circumvented so easily.
More Related questions...