On Thu, Oct 20, 2016 at 2:51 PM, Uvindra Dias Jayasinha <[email protected]> wrote:
> Hi Malintha, > > What do we gain by defining an exception hierarchy? As long as we can > differentiate between exceptions that should be enough. > > Hi I think one gain we can get by malintha's suggestion is that we can throw a single type of exception from a method instead of throwing multiple types. This is one of the suggestions provided by sonar as well [1]. By using malintha's method we can throw the super class. If not we have to catch the exception and wrap it and throw it [1] https://sonar.spring.io/rules/show/squid:S1160 > > On 20 October 2016 at 14:46, Malintha Amarasinghe <[email protected]> > wrote: > >> 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 >> > > > > -- > Regards, > Uvindra > > Mobile: 777733962 > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- Regards, Chamila Adhikarinayake Software Engineer WSO2, Inc. Mobile - +94712346437 Email - [email protected] Blog - http://helpfromadhi.blogspot.com/
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
