Hi,

I don't see any advantage from 2. But I'm not familiar with the test case maybe 
I just don't get the point of the information which is not delivered with 1 but 
in 2.
Could you explain it a little bit more? :)


Thx,
Daniel

On Mar 30, 2013, at 9:45 AM, Mikhail Mazursky (JIRA) <[email protected]> wrote:

> 
>    [ 
> https://issues.apache.org/jira/browse/ONAMI-88?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13618021#comment-13618021
>  ] 
> 
> Mikhail Mazursky commented on ONAMI-88:
> ---------------------------------------
> 
> I experimented a bit with catching RuntimeException and wrapping it in 
> ProvisionException vs just letting exception propagate. I used existing code 
> in UUIDConverter as a testcase. So, the current behaviour (catch&wrap) 
> results in this output (i obused a test in other project for experiments - 
> don't take it into account):
> 
> com.google.inject.ConfigurationException: Guice configuration errors:
> 
> 1) String value 'abcasd' is not a valid UUID
>  while locating java.util.UUID annotated with 
> @com.google.inject.name.Named(value=a)
>    for field at 
> org.apache.onami.converters.net.URLConverterTestCase.u(URLConverterTestCase.java:43)
>  while locating org.apache.onami.converters.net.URLConverterTestCase
> 
> 1 error
>       at 
> com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1004)
>       [...]
> Caused by: java.lang.IllegalArgumentException: Invalid UUID string: abcasd
>       at java.util.UUID.fromString(UUID.java:194)
>       [...]
> 
> If we don't catch - this is the output:
> 
> com.google.inject.ConfigurationException: Guice configuration errors:
> 
> 1) Error converting 'abcasd' (bound at 
> org.apache.onami.converters.net.URLConverterTestCase$1.configure(URLConverterTestCase.java:54))
>  to java.util.UUID
> using java.util.UUID which matches only(java.util.UUID) (bound at 
> org.apache.onami.converters.core.AbstractConverter.configure(AbstractConverter.java:44)).
> Reason: java.lang.IllegalArgumentException: Invalid UUID string: abcasd
>  while locating java.util.UUID annotated with 
> @com.google.inject.name.Named(value=a)
>    for field at 
> org.apache.onami.converters.net.URLConverterTestCase.u(URLConverterTestCase.java:43)
>  while locating org.apache.onami.converters.net.URLConverterTestCase
> 
> 1 error
>       at 
> com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1004)
>       [...]
> Caused by: java.lang.IllegalArgumentException: Invalid UUID string: abcasd
>       at java.util.UUID.fromString(UUID.java:194)
>       [...]
> 
> As you can see, wrapping in ProvisionException gives us less information - 
> apparently Guice treats ProvisionException somehow not like other exceptions. 
> I propose to get rid of wrapping in ProvisionException and wrap only checked 
> exceptions in RuntimeException where necessary. WDYT?
> 
>> Consistent policy for exception handling
>> ----------------------------------------
>> 
>>                Key: ONAMI-88
>>                URL: https://issues.apache.org/jira/browse/ONAMI-88
>>            Project: Apache Onami
>>         Issue Type: Improvement
>>         Components: configuration
>>   Affects Versions: configuration-6.3.0
>>           Reporter: Mikhail Mazursky
>>           Priority: Minor
>> 
>> No consistent policy for exception handling - for example 
>> SQLTimestampConverter catches Throwable and rethrows it as 
>> ProvisionException but CharsetConverter do not catch anything at all. Should 
>> we catch at all or Guice handles this itself?
>> I guess we should rethrow only checked exceptions. Also no need to catch 
>> Errors in such places in any case (catch Exception vs Throwable).
> 
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA administrators
> For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to