* BAEL-1044 - Introduction to NoException * BAEL-1044 - Introduction to NoException * BAEL-1044 - Introduction to NoException * BAEL-1044 - Introduction to NoException * BAEL-1044 - Introduction to NoException * Update pom.xml Add missing </dependency>
63 lines
2.1 KiB
Java
63 lines
2.1 KiB
Java
package com.baeldung.noexception;
|
|
|
|
import com.machinezoo.noexception.Exceptions;
|
|
import org.junit.Test;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
public class NoExceptionUnitTest {
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(NoExceptionUnitTest.class);
|
|
|
|
@Test
|
|
public void whenStdExceptionHandling_thenCatchAndLog() {
|
|
try {
|
|
System.out.println("Result is " + Integer.parseInt("foobar"));
|
|
} catch (Throwable exception) {
|
|
logger.error("Caught exception:", exception);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void whenDefaultNoException_thenCatchAndLog() {
|
|
Exceptions.log().run(() -> System.out.println("Result is " + Integer.parseInt("foobar")));
|
|
}
|
|
|
|
@Test
|
|
public void givenLogger_whenDefaultNoException_thenCatchAndLogWithClassName() {
|
|
Exceptions.log(logger).run(() -> System.out.println("Result is " + Integer.parseInt("foobar")));
|
|
}
|
|
|
|
@Test
|
|
public void givenLoggerAndMessage_whenDefaultNoException_thenCatchAndLogWithMessage() {
|
|
Exceptions.log(logger, "Something went wrong:").run(() -> System.out.println("Result is " + Integer.parseInt("foobar")));
|
|
}
|
|
|
|
@Test
|
|
public void givenDefaultValue_whenDefaultNoException_thenCatchAndLogPrintDefault() {
|
|
System.out.println("Result is " + Exceptions.log(logger, "Something went wrong:").get(() -> Integer.parseInt("foobar")).orElse(-1));
|
|
}
|
|
|
|
@Test(expected = Error.class)
|
|
public void givenCustomHandler_whenError_thenRethrowError() {
|
|
CustomExceptionHandler customExceptionHandler = new CustomExceptionHandler();
|
|
customExceptionHandler.run(() -> throwError());
|
|
}
|
|
|
|
@Test
|
|
public void givenCustomHandler_whenException_thenCatchAndLog() {
|
|
CustomExceptionHandler customExceptionHandler = new CustomExceptionHandler();
|
|
customExceptionHandler.run(() -> throwException());
|
|
}
|
|
|
|
private static void throwError() {
|
|
throw new Error("This is very bad.");
|
|
}
|
|
|
|
private static void throwException() {
|
|
String testString = "foo";
|
|
testString.charAt(5);
|
|
}
|
|
|
|
}
|