Hi, I'm just curious about the stranded way of handling exceptions in WSO2 products. When I go through source code, I found that we use handleException method in some places (in some places use deferent method such as create new exceptions, catch, log and ignore, etc.) Can someone explain the standard exception handling mechanism in WSO2 products and it will be very helpful for newcomers also. (use cases for each case like when to use what method).
When it comes to handleException method, I have another question. *Current handle exception method* public void handleException(String msg, Exception e) throws ProductException{ log.error(msg, e); throw new ProductException(msg, e); } *Problem* class One{ public void methodOne() { try { Two two = new Two(); two.methodTwo(); } catch (WhateverException e) { handleException("Whatever exception message", e); } } } class Two{ public void methodTwo() { try { // Database manipulation code goes here } catch (SQLException e) { handleException("Cannot complete the transaction", e); } } } In handleException method we always create a new Exception. When we have multiple method calls, there will be duplicate stacktraces and the actual exception is printed in very latter part of the stack trace. Sometimes it is bit difficult to trace an error. Is there any specific reason to create new exceptions inside handleException method, instead of throwing same exception object if the exceptions is an instance of ProductException like below sample. public void handleException(String msg, Exception e) throws ProductException{ log.error(msg, e); if(e instanceof ProductException) throw e; throw new ProductException(msg, e); } Thank you. -- *Dinesh J. Weerakkody* Software Engineer WSO2 Inc. lean | enterprise | middleware M : +94 727 361788 | E : dine...@wso2.com | W : www.wso2.com
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev