Hi Uvindra, Would we be able to get the benefits of both "Keeping a single APIManagementException" and "Having Specific Exceptions" when we have a hierarchy isn't it? The Pro you mentioned, "*Only one APIM specific exception needs to be handled in the entire APIM code base" *when we have single exception class*. *When we catch an exception, there might be situations that, we do not need to handle specific DAO exceptions, but handling a general APIMDAOException would be enough. If we do not have a hierarchy we might need to have multiple catch blocks catching specific exceptions but doing the same thing. But if all specific DAO exceptions are extended from APIMDAOException, we can have a single catch block with catching APIMDAOException?
Thanks, Malintha 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. > > > 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 > -- 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
