On Fri, Oct 21, 2016 at 12:08 PM, Harsha Kumara <[email protected]> wrote:

>
>
> On Fri, Oct 21, 2016 at 11:14 AM, Malith Jayasinghe <[email protected]>
> wrote:
>
>> Hi Harsha,
>>
>> It makes sense to define specific exceptions. However, I am wondering (in
>> most of these cases) whether the caller can do anything specially to handle
>> these exception (I guess this will depend on how you define the exception
>> (and when it will be thrown)?
>>
>> For example, if you throw APIMDAOException when you get a SQL exception
>> within a DAO method, how would the client code handle it?  Can you give an
>> example?
>>
> Basically if we find a exception in DAO layer, let's say if we going to
> search users by name and it returns a SQL exception, we need catch it and
> throw defined exception with error message saying it's failed when
> searching users. In upper layers it will be useful.
>


> Also DAO layer may not only throw SQL exceptions, there might me different
> types of exceptions thrown from it.
>
Agreed (there will be both SQL and NON-SQL DAO exceptions)



> In service layer it might not need to aware all about it. We shouldn't
> expose DAO layer exceptions for end users as well. Because DAO layer
> exceptions might contains information regarding queries, schema and etc.
> Also with having defined exception we can send response back to the client
> accordingly. If we encounter server error we may return 404 while if we
> encounter security exception we may send response with other error
> accordingly.
>

Good explanation thanks.

>
> [1] http://tutorials.jenkov.com/java-exception-handling/
> exception-wrapping.html
>
>>
>> Thanks
>>
>> Malith
>>
>>
>>
>> On Thu, Oct 20, 2016 at 3:31 PM, Harsha Kumara <[email protected]> wrote:
>>
>>> Definitely we need to have well defined set of exceptions instead using
>>> APIManagementException in all places. As Uvindra mentioned, for API Manager
>>> database access, we can have APIMDAOExcepton. For security related
>>> exceptions we can have APIMSecurityException and so on. In jaggary level
>>> also we check the instance type of a thrown exception and return responses
>>> accordingly.
>>>
>>> [1] http://howtodoinjava.com/best-practices/java-exception-h
>>> andling-best-practices/
>>>
>>> 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
>>>>
>>>
>>>
>>>
>>> --
>>> Harsha Kumara
>>> Software Engineer, WSO2 Inc.
>>> Mobile: +94775505618
>>> Blog:harshcreationz.blogspot.com
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> Malith Jayasinghe
>>
>> WSO2, Inc. (http://wso2.com)
>> Email   : [email protected]
>> Mobile : 0770704040
>> Lean . Enterprise . Middleware
>>
>
>
>
> --
> Harsha Kumara
> Software Engineer, WSO2 Inc.
> Mobile: +94775505618
> Blog:harshcreationz.blogspot.com
>



-- 
Malith Jayasinghe

WSO2, Inc. (http://wso2.com)
Email   : [email protected]
Mobile : 0770704040
Lean . Enterprise . Middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to