public static void main(final String[] args) throws IOException, FileNotFoundException {

    try {
      mainHelper(args);
    } catch (Daikon.TerminationMessage e) {
      String message = e.getMessage();
      if (Daikon.dkconfig_show_stack_trace) e.printStackTrace();
      if (message != null) {
        System.err.println(message);
        System.exit(1);
      }
      System.exit(0);
    }
    // Any exception other than Daikon.TerminationMessage gets propagated.
    // This simplifies debugging by showing the stack trace.
  }