REQUEST: better empty catch in better exception handling
rssh at gradsoft.com.ua
rssh at gradsoft.com.ua
Wed Mar 25 02:24:59 PDT 2009
> I think a better solution to this problem is to add a new method to
> Throwable thus
>
> public final void ignore() {}
>
> And then you can explicitly ignore an exception like this
>
> }catch(SomeException ex){
> ex.ignore();
> }
>
> I would hope that hotspot could inline that quite easily :)
>
> I intend to suggest this for the small API changes process which is
> coming soon.
>
Great !
> Bruce
>
> rssh at gradsoft.com.ua wrote:
>> Yet one problem with extension handler: rare we need catch exception
>> but do
>> nothibg in catch statement. (i. e. do not log)
>> Example is code like next snipset:
>>
>> try {
>> something=searchFirst(condition);
>> }catch(NotFoundException ex){
>> // do nothing. search better
>> }
>>
>> if (something!=null) {
>> try {
>> something=searchSecond(condition);
>> }catch(NotFoundException ex){
>> // do nothing. search better
>> }
>> }
>>
>> >From other side, we prefer do not have in codebase code with empty
>> exception handling and use special tools to detect empty catch braclets
>> and warn about ones.
>> For now, we use ';' to mark, that this empty catch is really empty
>> catch and not error or unfinished refactoring. I.e.:
>>
>> if (something!=null) {
>> try {
>> something=searchSecond(condition);
>> }catch(NotFoundException ex){
>> // do nothing. search better
>> ; // ';' tell javachecker do not complain about empty catch.
>> }
>> }
>>
>>
>> But this is ugly.
>> Of course, is simple use annotation
>> @SuppressWarning("empty-catch") but javac compiler does not warn about
>> empty catch-s.
>>
>> So, question to community: is it possible to extend exception handling
>> proposal by adding optional conventions
>> - warn about empty catch-s
>> - specify rare cases, when empty catch is really needed. ?
>>
>> For example, this can be @EmptyCatch annotation, which mark catch block
>> empty. i.e.
>> try {
>>
>> }catch(@EmptyCatch NotFound | FoundNotAsILike ex ){
>> }
>> and effective do nothing.
>>
>>
>>
>>
>>
>>
>
>
More information about the coin-dev
mailing list