What is the purpose of throwing all caught exceptions?

Håkon Tønnessen :

I'm going through our code for our core programs to refactor and I encountered this weird try/catch block

try {
    //Do some socket and network stuff
} catch (NoRouteToHostException e) {
    throw e;
} catch (UnknownHostException e) {

    throw e;
} catch (IOException e) {

    throw e;
} finally {
    //Does some counting stuff over here
}

Now I can't understand why on earth someone would do something like this, the people who wrote this code have left the company, but were indeed very skilled.

Is there a purpose to this try/catch block? Would it not be better to just throw these exceptions and do the finally things from where the method is called?

Andrew Tobilko :

Either they didn't know they could write try-finally without catch or it's a legacy piece and it formerly performed something different for each catch block.

Otherwise, it makes no sense and it's identical to

try {
    // Do some socket and network stuff
} finally {
    // Does some counting stuff over here
}

Even skilled people tend to make mistakes, particularly when a deadline approaches.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=309481&siteId=1