This lib hase zero dependencies and can be used to throw checked exceptions without declaring this in your method's head throws clause.
And without wrapping Exception into a RuntimeException. Basically you can throw any Exception everywhere without catching them, happy throwing :-D
unchecked(Exception) rethrows any exception as unchecked exception, without wrapping exception.
throw unchecked(checkedException);unchecked(LambdaFunction) returns result or rethrows exception from lambda function as unchecked exception, without wrapping exception.
return unchecked(() -> methodThrowingCheckedException()) import static me.qoomon.UncheckedExceptions.*;
public class Example {
void example() {
URL url;
// code polition with try catch block
try {
url = new URL("https:/www.example.org");
} catch (MalformedURLException e) {
// ugly exception wrapping
throw RuntimeException(e);
}
System.out(url);
}
} import static me.qoomon.UncheckedExceptions.*;
public class Example {
void example() {
// get rid of code polition with try catch block and exception wrapping
URL url = unchecked(() -> new URL("https:/www.example.org"));
System.out(url);
}
}
import static me.qoomon.UncheckedExceptions.*;
public class Example {
void example() {
Stream.of("https:/www.example.org")
.map(url -> {
// code polition with try catch block
try {
return new URL(url);
} catch (MalformedURLException e) {
// ugly exception wrapping
throw new RuntimeException(e);
}
});
}
}
import static me.qoomon.UncheckedExceptions.*;
public class Example {
void example() {
Stream.of("https:/www.example.org")
// get rid of code polition with try catch block and exception wrapping
.map(url -> unchecked(() -> new URL(url)));
}
}