@Target(value={METHOD,CONSTRUCTOR}) @Retention(value=SOURCE) public @interface SneakyThrows
@SneakyThrows does not silently swallow, wrap into RuntimeException, or otherwise modify any exceptions of the listed checked exception types. The JVM does not check for the consistency of the checked exception system; javac does, and this annotation lets you opt out of its mechanism.
Complete documentation is found at the project lombok features page for @SneakyThrows.
Example:
@SneakyThrows(UnsupportedEncodingException.class) public String utf8ToString(byte[] bytes) { return new String(bytes, "UTF-8"); }Becomes:
public String utf8ToString(byte[] bytes) { try { return new String(bytes, "UTF-8"); } catch (UnsupportedEncodingException $uniqueName) { throw useMagicTrickeryToHideThisFromTheCompiler($uniqueName); // This trickery involves a bytecode transformer run automatically during the final stages of compilation; // there is no runtime dependency on lombok. }
Copyright © 2024. All rights reserved.