NcursesBridge.init() (line 248) declares 'throws Throwable' because of MethodHandle.invokeExact(). This forces all callers to catch Throwable, which is an anti-pattern that prevents proper exception handling. The checked exceptions from invokeExact() should be caught and wrapped in a specific RuntimeException subtype.
File: /home/sfloess/Development/github/FlossWare/curses-java/src/main/java/org/flossware/curses/ffi/NcursesBridge.java:248
Severity: medium
Category: maintainability
Found by: claude-opus-4-6
NcursesBridge.init() (line 248) declares 'throws Throwable' because of MethodHandle.invokeExact(). This forces all callers to catch Throwable, which is an anti-pattern that prevents proper exception handling. The checked exceptions from invokeExact() should be caught and wrapped in a specific RuntimeException subtype.
File: /home/sfloess/Development/github/FlossWare/curses-java/src/main/java/org/flossware/curses/ffi/NcursesBridge.java:248
Severity: medium
Category: maintainability
Found by: claude-opus-4-6