How to use try catch exception handling with message and stack trace in Groovy

1 Answer

0 votes
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
  
*/

 



answered Oct 6, 2020 by avibootz

Related questions

1 answer 404 views
1 answer 279 views
1 answer 194 views
1 answer 206 views
2 answers 295 views
...