You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@click.apache.org by Bob Schellink <sa...@gmail.com> on 2009/10/02 00:44:29 UTC

Re: User errors when using RequestTypeConverter

Hi WarnerJan,

All RuntimeExceptions thrown by the application will be handled by 
Click's ErrorPage. So how about wrapping the parse code in a try/catch 
block and rethrow a RuntimeException or custom exception e.g: 
SecurityException/TamperException and let Click ErrorPage display the 
message? You can also create your own ErrorPage subclass to customize 
error handling if you're not happy with the default behavior.

If you're application is i18n aware you can lookup the error messages 
from the ErrorPage's property file.

kind regards

bob

WarnerJan Veldhuis wrote:
> Hello list,
> 
> I have a class that extends RequestTypeConverter. The issue that rises, is that I cannot handle errors very well. For example, I have this URL: /Portal/publish.htm?configuration=1. In order to get the VO, I need to parse the value. This would be a String containing "1". Integer.parseInt( (String) value) will get me an int containing 1.
> 
> But if people start messing with the URL, and for example enter configuration=blah, parseInt will throw a ParseException. What do I do with that Exception? Rethrow? Catch, and then what? It's not clear how to handle errors here.
> 
> Same goes for semantic errors. If they change the number from 1 to 42, they might not have access to that particular VO. The backend will throw an InsufficientRightsException, and what do I do with that?
> 
> Thanks for thinking along :)
> 
> Cheers,
> 
> WarnerJan Veldhuis
> 


Re: User errors when using RequestTypeConverter

Posted by Malcolm Edgar <ma...@gmail.com>.
Hi Warner,
Yes that what I would do.

regards Malcolm Edgar

On Fri, Oct 2, 2009 at 6:37 PM, WarnerJan Veldhuis <
warnerjan.veldhuis@qprcostcontrol.com> wrote:

>  Right, I think I found a way to do this. Probably the only right way ;)
>
> I have subclassed ErrorPage, overridden getTemplate() to return the base
> template, and created a custom click/error.htm. Is this the way to go?
>
> Cheers,
> WarnerJan
>
>
>
> On 10/02/2009 10:21 AM, WarnerJan Veldhuis wrote:
>
> Hey Bob,
>
> Thanks for th response. I have been playing around with a custom errorpage,
> but apparently you *have* to subclass Click's ErrorPage in order to make it
> work. How do I integrate this page with my current template?
>
> I have a TemplatePage class that will take care of layout and stuff, and I
> want my error page to fit right in the existing layout. But I cannot let my
> errorpage extends TemplatePage because of the before mentioned restriction.
>
> Is it an idea to make ErrorPage an interface instead of a class with, let's
> say *void setError( Throwable t)* so any page can function as an
> ErrorPage?
>
> Cheers
>
> WarnerJan
>
>
> On 10/02/2009 12:44 AM, Bob Schellink wrote:
>
> Hi WarnerJan,
>
> All RuntimeExceptions thrown by the application will be handled by Click's
> ErrorPage. So how about wrapping the parse code in a try/catch block and
> rethrow a RuntimeException or custom exception e.g:
> SecurityException/TamperException and let Click ErrorPage display the
> message? You can also create your own ErrorPage subclass to customize error
> handling if you're not happy with the default behavior.
>
> If you're application is i18n aware you can lookup the error messages from
> the ErrorPage's property file.
>
> kind regards
>
> bob
>
> WarnerJan Veldhuis wrote:
>
> Hello list,
>
> I have a class that extends RequestTypeConverter. The issue that rises, is
> that I cannot handle errors very well. For example, I have this URL:
> /Portal/publish.htm?configuration=1. In order to get the VO, I need to parse
> the value. This would be a String containing "1". Integer.parseInt( (String)
> value) will get me an int containing 1.
>
> But if people start messing with the URL, and for example enter
> configuration=blah, parseInt will throw a ParseException. What do I do with
> that Exception? Rethrow? Catch, and then what? It's not clear how to handle
> errors here.
>
> Same goes for semantic errors. If they change the number from 1 to 42, they
> might not have access to that particular VO. The backend will throw an
> InsufficientRightsException, and what do I do with that?
>
> Thanks for thinking along :)
>
> Cheers,
>
> WarnerJan Veldhuis
>
>

Re: User errors when using RequestTypeConverter

Posted by WarnerJan Veldhuis <wa...@qprcostcontrol.com>.
Right, I think I found a way to do this. Probably the only right way ;)

I have subclassed ErrorPage, overridden getTemplate() to return the base 
template, and created a custom click/error.htm. Is this the way to go?

Cheers,
WarnerJan


On 10/02/2009 10:21 AM, WarnerJan Veldhuis wrote:
> Hey Bob,
>
> Thanks for th response. I have been playing around with a custom 
> errorpage, but apparently you *have* to subclass Click's ErrorPage in 
> order to make it work. How do I integrate this page with my current 
> template?
>
> I have a TemplatePage class that will take care of layout and stuff, 
> and I want my error page to fit right in the existing layout. But I 
> cannot let my errorpage extends TemplatePage because of the before 
> mentioned restriction.
>
> Is it an idea to make ErrorPage an interface instead of a class with, 
> let's say /void setError( Throwable t)/ so any page can function as an 
> ErrorPage?
>
> Cheers
>
> WarnerJan
>
>
> On 10/02/2009 12:44 AM, Bob Schellink wrote:
>> Hi WarnerJan,
>>
>> All RuntimeExceptions thrown by the application will be handled by 
>> Click's ErrorPage. So how about wrapping the parse code in a 
>> try/catch block and rethrow a RuntimeException or custom exception 
>> e.g: SecurityException/TamperException and let Click ErrorPage 
>> display the message? You can also create your own ErrorPage subclass 
>> to customize error handling if you're not happy with the default 
>> behavior.
>>
>> If you're application is i18n aware you can lookup the error messages 
>> from the ErrorPage's property file.
>>
>> kind regards
>>
>> bob
>>
>> WarnerJan Veldhuis wrote:
>>> Hello list,
>>>
>>> I have a class that extends RequestTypeConverter. The issue that 
>>> rises, is that I cannot handle errors very well. For example, I have 
>>> this URL: /Portal/publish.htm?configuration=1. In order to get the 
>>> VO, I need to parse the value. This would be a String containing 
>>> "1". Integer.parseInt( (String) value) will get me an int containing 1.
>>>
>>> But if people start messing with the URL, and for example enter 
>>> configuration=blah, parseInt will throw a ParseException. What do I 
>>> do with that Exception? Rethrow? Catch, and then what? It's not 
>>> clear how to handle errors here.
>>>
>>> Same goes for semantic errors. If they change the number from 1 to 
>>> 42, they might not have access to that particular VO. The backend 
>>> will throw an InsufficientRightsException, and what do I do with that?
>>>
>>> Thanks for thinking along :)
>>>
>>> Cheers,
>>>
>>> WarnerJan Veldhuis
>>>

Re: User errors when using RequestTypeConverter

Posted by WarnerJan Veldhuis <wa...@qprcostcontrol.com>.
Hey Bob,

Thanks for th response. I have been playing around with a custom 
errorpage, but apparently you *have* to subclass Click's ErrorPage in 
order to make it work. How do I integrate this page with my current 
template?

I have a TemplatePage class that will take care of layout and stuff, and 
I want my error page to fit right in the existing layout. But I cannot 
let my errorpage extends TemplatePage because of the before mentioned 
restriction.

Is it an idea to make ErrorPage an interface instead of a class with, 
let's say /void setError( Throwable t)/ so any page can function as an 
ErrorPage?

Cheers

WarnerJan


On 10/02/2009 12:44 AM, Bob Schellink wrote:
> Hi WarnerJan,
>
> All RuntimeExceptions thrown by the application will be handled by 
> Click's ErrorPage. So how about wrapping the parse code in a try/catch 
> block and rethrow a RuntimeException or custom exception e.g: 
> SecurityException/TamperException and let Click ErrorPage display the 
> message? You can also create your own ErrorPage subclass to customize 
> error handling if you're not happy with the default behavior.
>
> If you're application is i18n aware you can lookup the error messages 
> from the ErrorPage's property file.
>
> kind regards
>
> bob
>
> WarnerJan Veldhuis wrote:
>> Hello list,
>>
>> I have a class that extends RequestTypeConverter. The issue that 
>> rises, is that I cannot handle errors very well. For example, I have 
>> this URL: /Portal/publish.htm?configuration=1. In order to get the 
>> VO, I need to parse the value. This would be a String containing "1". 
>> Integer.parseInt( (String) value) will get me an int containing 1.
>>
>> But if people start messing with the URL, and for example enter 
>> configuration=blah, parseInt will throw a ParseException. What do I 
>> do with that Exception? Rethrow? Catch, and then what? It's not clear 
>> how to handle errors here.
>>
>> Same goes for semantic errors. If they change the number from 1 to 
>> 42, they might not have access to that particular VO. The backend 
>> will throw an InsufficientRightsException, and what do I do with that?
>>
>> Thanks for thinking along :)
>>
>> Cheers,
>>
>> WarnerJan Veldhuis
>>