From bea5cdafe416e6284d645b9a07b9d1b3f4e3902a Mon Sep 17 00:00:00 2001 From: Vikas Ramsingh Rajput Date: Tue, 7 Jan 2020 21:08:42 +0300 Subject: [PATCH 1/4] BAEL-3504: Article - what causes invocation-target-exception : done --- .../InvocationTargetDemo.java | 19 +++++++++++++++++++ .../InvocationTargetExample.java | 7 +++++++ 2 files changed, 26 insertions(+) create mode 100644 core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetDemo.java create mode 100644 core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetExample.java diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetDemo.java b/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetDemo.java new file mode 100644 index 0000000000..125a5d649f --- /dev/null +++ b/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetDemo.java @@ -0,0 +1,19 @@ +package com.baeldung.reflection.exception.invocationtarget; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +public class InvocationTargetDemo { + public static void main(String[] args) throws Throwable { + + try { + + InvocationTargetExample targetExample = new InvocationTargetExample(); + Method method = InvocationTargetExample.class.getMethod("divideByZeroExample"); + method.invoke(targetExample); + } catch (InvocationTargetException e) { + + throw e.getCause(); + } + } +} diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetExample.java b/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetExample.java new file mode 100644 index 0000000000..a20ee527f8 --- /dev/null +++ b/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetExample.java @@ -0,0 +1,7 @@ +package com.baeldung.reflection.exception.invocationtarget; + +public class InvocationTargetExample { + public int divideByZeroExample() { + return 1 / 0; + } +} \ No newline at end of file From 82cffb4b61d27d881b6c558b7c43118dde4c4a92 Mon Sep 17 00:00:00 2001 From: Vikas Ramsingh Rajput Date: Fri, 17 Jan 2020 23:38:53 +0300 Subject: [PATCH 2/4] BAEL-3504: Added Unit test file and removed old class file --- .../InvocationTargetDemo.java | 19 ------------------ .../InvocationTargetUnitTest.java | 20 +++++++++++++++++++ 2 files changed, 20 insertions(+), 19 deletions(-) delete mode 100644 core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetDemo.java create mode 100644 core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetDemo.java b/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetDemo.java deleted file mode 100644 index 125a5d649f..0000000000 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetDemo.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.reflection.exception.invocationtarget; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -public class InvocationTargetDemo { - public static void main(String[] args) throws Throwable { - - try { - - InvocationTargetExample targetExample = new InvocationTargetExample(); - Method method = InvocationTargetExample.class.getMethod("divideByZeroExample"); - method.invoke(targetExample); - } catch (InvocationTargetException e) { - - throw e.getCause(); - } - } -} diff --git a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java b/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java new file mode 100644 index 0000000000..938dff87d4 --- /dev/null +++ b/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java @@ -0,0 +1,20 @@ +package com.baeldung.reflection.exception.invocationtarget; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +import org.junit.jupiter.api.Test; + +public class InvocationTargetUnitTest { + + @Test + public void whenCallingMethodThrowsException_thenAssertTrue() throws Exception { + InvocationTargetExample targetExample = new InvocationTargetExample(); + Method method = InvocationTargetExample.class.getMethod("divideByZeroExample"); + Exception exception = assertThrows(InvocationTargetException.class, () -> method.invoke(targetExample)); + assertEquals(ArithmeticException.class, exception.getCause().getClass()); + } +} From 9e2e9bd460ad28580fc73fecba3077f010371e8d Mon Sep 17 00:00:00 2001 From: Vikas Rajput Date: Sun, 19 Jan 2020 10:52:37 +0300 Subject: [PATCH 3/4] BAEL-3504: Update core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java Co-Authored-By: KevinGilmore --- .../exception/invocationtarget/InvocationTargetUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java b/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java index 938dff87d4..f7297b0f0b 100644 --- a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java +++ b/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java @@ -11,7 +11,7 @@ import org.junit.jupiter.api.Test; public class InvocationTargetUnitTest { @Test - public void whenCallingMethodThrowsException_thenAssertTrue() throws Exception { + public void whenCallingMethodThrowsException_thenAssertCauseOfInvocationTargetException() throws Exception { InvocationTargetExample targetExample = new InvocationTargetExample(); Method method = InvocationTargetExample.class.getMethod("divideByZeroExample"); Exception exception = assertThrows(InvocationTargetException.class, () -> method.invoke(targetExample)); From 910ac808c8c079cd22efe1ef7a95e10fc73883a5 Mon Sep 17 00:00:00 2001 From: Vikas Ramsingh Rajput Date: Sun, 19 Jan 2020 11:56:33 +0300 Subject: [PATCH 4/4] BAEL-3504: Added blank lines before when and then in unit test --- .../exception/invocationtarget/InvocationTargetUnitTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java b/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java index f7297b0f0b..b4cabebcef 100644 --- a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java +++ b/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/exception/invocationtarget/InvocationTargetUnitTest.java @@ -12,9 +12,12 @@ public class InvocationTargetUnitTest { @Test public void whenCallingMethodThrowsException_thenAssertCauseOfInvocationTargetException() throws Exception { + InvocationTargetExample targetExample = new InvocationTargetExample(); Method method = InvocationTargetExample.class.getMethod("divideByZeroExample"); + Exception exception = assertThrows(InvocationTargetException.class, () -> method.invoke(targetExample)); + assertEquals(ArithmeticException.class, exception.getCause().getClass()); } }