Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change unhandled exception auto-generated catch code in Eclipse?

If I have unhandled exception in Java, Eclipse proposes two options to me: (1) add throws declaration and (2) surround with try/catch.

If I choose (2) it adds a code

try {
   myfunction();
} catch (MyUnhandledException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

I want to change this to

try {
   myfunction();
} catch (MyUnhandledException e) {
    throw new RuntimeException(e);
}

Is this possible?

UPDATE

Why are so love to change the topic people???

If exception is catched and printed it is also no need to catch it anymore. I like my application to crash if I forget to handle an exception by mistake. So, I like to rethrow it by default.

like image 238
Suzan Cioc Avatar asked Nov 07 '12 18:11

Suzan Cioc


2 Answers

Yes, you can change the default code added by Eclipse.

  1. In Preferences, navigate to Java>Code Style>Code Templates.
  2. Under Code, select Catch block body.
  3. Press the Edit button to change the code. When finished, press the OK button.

Consider adding a TODO comment in the default catch block. For example, the default includes:

     // ${todo} Auto-generated catch block
like image 179
Andy Thomas Avatar answered Nov 15 '22 14:11

Andy Thomas


Personally, I use a generic idiom irrespective of the actual checked exception type, you might make Eclipse use that as a template instead:

try {
 ...
} 
catch (RuntimeException e) { throw e; } 
catch (Exception e) { throw new RuntimeException(e); }

The point is to wrap the whole code block instead of individually each line that may throw an exception. The block may throw any number of checked and unchecked exceptions, and this will allow the unchecked exceptions to pass through unharmed, and the checked exceptions will be wrapped.

like image 31
Marko Topolnik Avatar answered Nov 15 '22 14:11

Marko Topolnik