logo
backtop

(Created on 8th January 2012)

Vote #233

The following question was presented:

It's time to go all nostalgic. We go back to a time where men were men and computers had a DOS prompt ... oh those heady days! But can you remember those errors you used to get? In particular, did you know what the difference was between abort and fail in the “abort, retry, fail?” message that MS-DOS used to give you?

Results:

No - I just used to select one or the other was the clear winner with 60% of the votes selected from the following:

  • Yes - I know the difference between abort and fail (20%)
  • No - I just used to select one or the other (60%)
  • I have no idea what you're talking about (20%)

Graphic of Results:

bothcharts

Analysis:

Not really surprised that the majority of people don't know the difference between abort and fail. The answer is that abort terminated the program whereas fail returned a fail command from the operating system back to the program making the request. Typically, this error came up when there wasn't a disk in the disk drive and the program making the request for access to the disk drive would get a fail response if you select fail. Selecting abort just ended the program and took you back to the DOS prompt. Trouble is that most programs that received a fail exited you back to the DOS prompt, so there was no real visible difference to the user between selecting abort or fail. There's an interesting article on Wikipedia if you're interested. It provides the following definitions (including ignore which was added to the abort, retry, fail message for certain errors).

  • Abort (A): Terminate the operation/program and return to the system command prompt. In hindsight this was not a good idea as the program would not do any cleanup (such as completing writing of other files). "Abort" was necessary because early MSDOS did not implement "Fail". It may have remained necessary for poorly written software for which "Fail" would have caused a loop that would have repeatedly invoked the critical error handler with no other way to exit.
  • Retry (R): DOS would attempt the operation again. "Retry" made sense if the user could rectify the problem. To continue the example above, if the user simply forgot to close the drive latch, they could close it, retry, and the system would continue where it left off.
  • Ignore (I): Return success status to the calling program/routine, despite the failure of the operation. For instance, a disk read error could be ignored and DOS would return whatever data was in the read buffer, which might contain some of the correct data from the disk. Attempting to use results after an "Ignore" was an undefined behaviour. "Ignore" did not appear in cases where it was impossible for the data to be used; for instance, a missing disk could not be ignored because that would require DOS to construct and return some kind of file descriptor that worked in further "read" calls.
  • Fail (F): Return failure status to the calling program/routine. "Fail" returned an error code to the program, similar to other errors such as file not found. The program could then gracefully recover from the problem. This option did not exist in MSDOS 2.0.

Comments:

1 comment
Mr C
10:54:43
23rd January 2012
Thanks for that. Have just woken up from my coma.