Reports a throw statement whose exceptions are always caught by a containing try statement.

Using throw statements as a "goto" to change the local flow of control is confusing and results in poor performance.

Example:


  try {
    if (!Files.isDirectory(PROJECTS)) {
        throw new IllegalStateException("Directory not found."); // warning: 'throw' caught by containing 'try' statement
    }
    ...
  }
  catch (Exception e) {
      LOG.error("run failed");
  }

Use the Ignore rethrown exceptions option to ignore exceptions that are rethrown.