How to Push to a GitHub Repository in IntelliJ
In recent Java releases, especially Java 21, exception handling mechanisms have been significantly enhanced to improve both code safety and system reliability.
These improvements help developers write more robust, maintainable, and error-resilient applications.
switch Statements Now Handle null and Support Pattern MatchingIn Java versions prior to 21, passing a null value to a switch statement would throw a NullPointerException.
Java 21 allows developers to explicitly handle null values inside switch, preventing unexpected crashes.
switch (input) {
case null -> System.out.println("Input is null.");
case "YES" -> System.out.println("Yes!");
default -> System.out.println("Other input.");
}
Benefits
NullPointerException by designwhen Clauses in switchJava 21 introduces pattern matching for switch, allowing developers to write more concise and type-safe branching logic. It also supports conditional case clauses (when) for fine-grained control.
static void handle(Object obj) {
switch (obj) {
case String s when s.isEmpty() -> System.out.println("Empty string");
case String s -> System.out.println("String: " + s);
case Integer i when i > 100 -> System.out.println("Integer > 100");
case null -> System.out.println("Null value");
default -> System.out.println("Other object");
}
}
Benefits
if-else or multiple instanceof checksJava continues to support classic mechanisms such as:
try-catch-finallythrows declarationsIn Java 21, the use of Thread.setUncaughtExceptionHandler is emphasized for centralized handling of uncaught exceptions.
Thread t = new Thread(() -> {
throw new RuntimeException("Something went wrong!");
});
t.setUncaughtExceptionHandler((thread, ex) -> {
System.err.println("Unhandled exception: " + ex.getMessage());
});
t.start();
Benefits
Comments
Post a Comment