try {
def a = 12, b = 0, c
c = a / b
} catch(Exception ex) {
println ex.toString()
println()
println ex.getMessage()
println()
println ex.getStackTrace()
println()
} finally {
println "finally"
println()
}
println "After try catch finally"
/*
run:
java.lang.ArithmeticException: Division by zero
Division by zero
[java.base/java.math.BigDecimal.divide(BigDecimal.java:1774),
org.codehaus.groovy.runtime.typehandling.BigDecimalMath.divideImpl(BigDecimalMath.java:67),
org.codehaus.groovy.runtime.typehandling.IntegerMath.divideImpl(IntegerMath.java:47),
org.codehaus.groovy.runtime.dgmimpl.NumberNumberDiv$NumberNumber.invoke(NumberNumberDiv.java:344),
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53),
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47),
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115),
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127),
run(groovy:3), groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:266),
groovy.lang.GroovyShell.run(GroovyShell.java:376),
groovy.lang.GroovyShell.run(GroovyShell.java:365),
groovy.ui.GroovyMain.processOnce(GroovyMain.java:592),
groovy.ui.GroovyMain.run(GroovyMain.java:336),
groovy.ui.GroovyMain.access$1400(GroovyMain.java:69),
groovy.ui.GroovyMain$GroovyCommand.process(GroovyMain.java:295),
groovy.ui.GroovyMain.processArgs(GroovyMain.java:134),
groovy.ui.GroovyMain.main(GroovyMain.java:116),
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method),
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62),
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43),
java.base/java.lang.reflect.Method.invoke(Method.java:566),
org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:110),
org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:128)]
finally
After try catch finally
*/