This discussion came out of a particular problem I had with 
getAllExperimentsInProject(). If you ask for all experiments in a project which 
doesn't exist, it throws a generic AiravataSystemException. I requested that 
the exception be more meaningful, so that I can print a message to the user 
saying "The project you requested doesn't exist." 

So, the options Saminda listed, in the case of this particular issue, would be:

1. Define something like ProjectDoesntExistException
2. Continue to throw AiravataSystemException, but include something in the 
exception that would allow me to find out why it was thrown. That way I could 
write something like:

        if ($exception->message == "Project doesn't exist") do something



-----Original Message-----
From: Pierce, Marlon 
Sent: Thursday, April 24, 2014 9:23 AM
To: [email protected]
Subject: Re: Conveying Errors through the Thrift API

Hi Saminda, can you explain this in more detail:  "We felt that while option 1 
is ideal for the requirement it is also unmanageable for both client and server 
if more and more exception types needs to be introduced over time. "

What kinds of errors are we talking about?  What actions should the client take?


Marlon

On 4/24/14 3:26 AM, Saminda Wijeratne wrote:
> During an offline discussion related to the JIRA[1], it was made clear 
> that in an event of an exception at server side due to 
> improper/invalid client requests, the client should get back a proper 
> error message which can be programmed against. Two options were 
> discussed,
>
>    1. Define exceptions in the thrift data model for each and every error
>    that can encounter and use them in the Thrift API
>    2. Define a generic exception in the thrift data model which will have
>    tagged data identifying the exception
>
> We felt that while option 1 is ideal for the requirement it is also 
> unmanageable for both client and server if more and more exception 
> types needs to be introduced over time. Option 2 (while not a 
> conventional way of handling error) can circumvent this inconvenience 
> by introducing a thrift function to retrieve exact static error 
> details (which can be updated at the server side without needing to 
> change the thrift model) based on the tagged data.
>
> wdyt?
>
> 1. https://issues.apache.org/jira/browse/AIRAVATA-1142
>

Reply via email to