LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

Все верно, но ведь вам никто не мешает перехватить и RuntimeException, если уж так хочется

Речь не о том, что нельзя перехватывать RuntimeException. А о том, что список задекларированных в throws исключений отнюдь не исчерпывает список тех исключений, которые могут выскочить. Т.е. если где-то кто-то написал что-то вроде:

class Service {
  public void doSomething() throws FileNotFoundException {...}
  ...
}

class Client {
  public void useService(Service svc) {
    try {
      SomeResource res = allocateSomeResource();
      svc.doSomething();
      res.close();
    }
    catch(FileNotFoundException ex) {
      handleProblem(ex);
      res.close();
    }
  }
  ...
}
То он заложил в свой код потенциальную утечку ресурсов.

Исходная версия eao197, :

Все верно, но ведь вам никто не мешает перехватить и RuntimeException, если уж так хочется

Речь не о том, что нельзя перехватывать RuntimeException. А о том, что список задекларированных в throws исключений отнюдь не исчерпывает список тех исключений, которые могут выскочить. Т.е. если где-то кто-то написал что-то вроде:

class Service {
  public void doSomething() throws FileNotFoundException {...}
  ...
}

class Client {
  public void useService(Service svc) {
    try {
      SomeResource res = allocateSomeResource();
      svc.doSomething();
      res.close();
    }
    catch(FileNotFoundException ex) {
      handleProblem(ex);
      res.close();
    }
  }
}
То он заложил в свой код потенциальную утечку ресурсов.