Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.help > #588

Re: Good practice or not to close the file before System.exit(1)?

Date 2011-04-22 10:55 -0700
From Patricia Shanahan <pats@acm.org>
Newsgroups comp.lang.java.help
Subject Re: Good practice or not to close the file before System.exit(1)?
References <87mxjjqmlf.fsf@merciadriluca-station.MERCIADRILUCA> <87ipu67b41.fsf@merciadriluca-station.MERCIADRILUCA> <ios6c3$dpq$1@dont-email.me> <87bozy9qek.fsf@merciadriluca-station.MERCIADRILUCA>
Message-ID <_9-dnRwCx6OvXCzQnZ2dnUVZ_sSdnZ2d@earthlink.com> (permalink)

Show all headers | View raw


On 4/22/2011 9:55 AM, Merciadri Luca wrote:
...
> Okay. I might switch to exceptions for dealing with user input,
> then. I was dubitative because of so many answers about this... For
> example, at
> <http://groups.google.com/group/comp.lang.java.help/browse_thread/thread/8f3a236c4ff5a87e/4be4e8faf89e1b52?show_docid=4be4e8faf89e1b52>,
> Mr. Green tells me that exit should be used for application data/user
> errors. Surely exiting with System.exit won't give you any stack dump,
> but my idea was the following: does the user really need a stack dump
> when (s)he knows that he's given bad values to your program?
>

There are two separate questions: "What should the program as a whole
do?" and "What should an input validation method do?"

I think there is general agreement that main should not throw an
exception on user input error. Instead, the error should be reported,
for example by a message on standard output, and the program should
terminate with a non-zero status.

To produce that, you need to call System.exit() with the desired return
code.

Returning to the original question, if you have opened and written to an
output file, you need to close or flush it before the program terminates
to ensure output of any buffered data.

You should first use exceptions to get the information about the error
to an appropriate level in the program. If you find the error in main,
you will not need to do any exception work. If you find the error e.g.
in a conversion method, it should report it, probably through an
exception, to its caller. Generally, a conversion or validation method
should not be responsible for deciding to shut down the program.

The simplest way of doing clean-up is, as Stefan Ram recommends, to have
a single System.exit call at the end of main, and a returnCode variable.
The objective in the rest of the main program is to ensure that the
value of returnCode reflects what happened, including being zero if the
input was valid and everything worked.

Patricia

Back to comp.lang.java.help | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Good practice or not to close the file before System.exit(1)? Merciadri Luca <Luca.Merciadri@student.ulg.ac.be> - 2011-04-22 00:13 +0200
  Re: Good practice or not to close the file before System.exit(1)? rossum <rossum48@coldmail.com> - 2011-04-22 00:11 +0100
    Re: Good practice or not to close the file before System.exit(1)? rossum <rossum48@coldmail.com> - 2011-04-22 12:39 +0100
      Re: Good practice or not to close the file before System.exit(1)? Patricia Shanahan <pats@acm.org> - 2011-04-22 05:09 -0700
        Re: Good practice or not to close the file before System.exit(1)? Lew <noone@lewscanon.com> - 2011-04-22 09:39 -0400
          Re: Good practice or not to close the file before System.exit(1)? Merciadri Luca <Luca.Merciadri@student.ulg.ac.be> - 2011-04-23 13:20 +0200
    Re: Good practice or not to close the file before System.exit(1)? Merciadri Luca <Luca.Merciadri@student.ulg.ac.be> - 2011-04-22 16:37 +0200
  Re: Good practice or not to close the file before System.exit(1)? Patricia Shanahan <pats@acm.org> - 2011-04-22 04:55 -0700
  Re: Good practice or not to close the file before System.exit(1)? Merciadri Luca <Luca.Merciadri@student.ulg.ac.be> - 2011-04-22 13:56 +0200
    Re: Good practice or not to close the file before System.exit(1)? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-04-22 09:36 -0300
    Re: Good practice or not to close the file before System.exit(1)? markspace <-@.> - 2011-04-22 08:20 -0700
      Re: Good practice or not to close the file before System.exit(1)? Patricia Shanahan <pats@acm.org> - 2011-04-22 09:04 -0700
        Re: Good practice or not to close the file before System.exit(1)? markspace <-@.> - 2011-04-22 15:24 -0700
          Re: Good practice or not to close the file before System.exit(1)? markspace <-@.> - 2011-04-22 18:11 -0700
            Re: Good practice or not to close the file before System.exit(1)? markspace <-@.> - 2011-04-23 08:25 -0700
      Re: Good practice or not to close the file before System.exit(1)? Merciadri Luca <Luca.Merciadri@student.ulg.ac.be> - 2011-04-22 18:55 +0200
        Re: Good practice or not to close the file before System.exit(1)? Lew <noone@lewscanon.com> - 2011-04-22 13:40 -0400
        Re: Good practice or not to close the file before System.exit(1)? Patricia Shanahan <pats@acm.org> - 2011-04-22 10:55 -0700
          Re: Good practice or not to close the file before System.exit(1)? Merciadri Luca <Luca.Merciadri@student.ulg.ac.be> - 2011-04-22 22:58 +0200
            Re: Good practice or not to close the file before System.exit(1)? Merciadri Luca <Luca.Merciadri@student.ulg.ac.be> - 2011-04-22 23:09 +0200
              Re: Good practice or not to close the file before System.exit(1)? Patricia Shanahan <pats@acm.org> - 2011-04-22 14:30 -0700
                Re: Good practice or not to close the file before System.exit(1)? markspace <-@.> - 2011-04-22 15:38 -0700
                Re: Good practice or not to close the file before System.exit(1)? Patricia Shanahan <pats@acm.org> - 2011-04-22 17:00 -0700
                Re: Good practice or not to close the file before System.exit(1)? Lew <noone@lewscanon.com> - 2011-04-22 22:10 -0400
                Re: Good practice or not to close the file before System.exit(1)? Patricia Shanahan <pats@acm.org> - 2011-04-22 19:46 -0700
                Re: Good practice or not to close the file before System.exit(1)? Lew <noone@lewscanon.com> - 2011-04-23 09:54 -0400
  Re: Good practice or not to close the file before System.exit(1)? Roedy Green <see_website@mindprod.com.invalid> - 2011-04-22 12:45 -0700
    Re: Good practice or not to close the file before System.exit(1)? Merciadri Luca <Luca.Merciadri@student.ulg.ac.be> - 2011-04-22 23:20 +0200

csiph-web