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

Reply via email to