Hi Uvindra, +1 for defining specific exceptions. How about when defining a new APIMDAOException, extending it from a general APIManagementException? When there's another specific DAO related exception we can extend it from APIMDAOException. In that way, we can group specific types of exceptions in a hierarchical manner. WDYT?
Thanks! On Thu, Oct 20, 2016 at 2:27 PM, Uvindra Dias Jayasinha <[email protected]> wrote: > I would like to know your thoughts on $subject. > > Previously we have a single custom exception class in APIM called > 'APIManagementException' and this was used when throwing exceptions > specific to the APIM product. Pros and Cons of doing it this way are, > > *Pros* - Only one APIM specific exception needs to be handled in the > entire APIM code base > > *Cons* - When an exception is thrown its very difficult to pin point the > reason for the exception to be thrown. This results in, > > 1. Having to solely depend on the error message of the exception to > determine what has happened(Provided that the error message is clear) > > 2. Difficult to handle exception appropriately at code level because we > are not aware of the specifics of the exception > > > In light of this doesn't it make sense to define specific custom > exceptions? For example when interacting with the DAO component of APIM if > any data access errors are encountered we could define an > 'APIMDAOException' and throw that. This allows users of the DAO component > to clearly identify and handle that specific exception appropriately. > > > This obviously needs to be applied in a way that makes sense at component > level(DAO, Gateway, etc.) so its clear which specific component has run > into an issue. > > WDYT? > > -- > Regards, > Uvindra > > Mobile: 777733962 > -- Malintha Amarasinghe Software Engineer *WSO2, Inc. - lean | enterprise | middleware* http://wso2.com/ Mobile : +94 712383306
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
