HI Malintha, On 20 October 2016 at 15:33, Malintha Amarasinghe <[email protected]> wrote:
> 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? > When I mentioned this point as a Pro, the only advantage is less code(Helps us to be lazy). But it actually is a disadvantage because of the Cons I mentioned. We should have multiple catch blocks if that is the requirement. But we can minimise this as well by writing more localised code instead of one huge try block that has everything in it(This makes the code more readable as well) We discourage throwing the generic java 'Exception' for a reason. So defining and using our very own custom generic exception amounts to the same thing. Generic exceptions have no meaning by themselves. So if you are using the DAO component you have to handle the DAO exception, you cant opt out of doing that(if you do the whole point is lost). > 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 > -- Regards, Uvindra Mobile: 777733962
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
