Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the Best Practices regarding error codes returned by a Console application?

In c# you can return an integer to the underlying caller using Environment.Exit(n) (which can be tested, for instance, using the ERRORLEVEL variable from a DOS script).

Are there best practices regarding those codes?

I think 0 = no error... but are there numbers reserved? Can I use negative numbers? etc

Thanks!

like image 713
Nestor Avatar asked Jan 24 '23 02:01

Nestor


2 Answers

Zero usually means that there were no errors. As for others, I don't think there is a reserved set. I would usually define what the different return codes of my application meant and document them.

DOS only handles a maximum of 256 possible return codes, but in reality I doubt you would ever use/need that many.

You can use negative values, but note that negative values do not necessarily mean anything different from positive values.

like image 71
adrianbanks Avatar answered Jan 25 '23 15:01

adrianbanks


The most extensive use of return codes I've seen is in Robocopy. It may provide guidance for other apps. Robocopy uses return codes as flags:

0×10 Serious error. Robocopy did not copy any files. This is either a usage error or an error due to insufficient access privileges on the source or destination directories.

0×08 Some files or directories could not be copied (copy errors occurred and the retry limit was exceeded). Check these errors further.

0×04 Some Mismatched files or directories were detected. Examine the output log. Housekeeping is probably necessary.

0×02 Some Extra files or directories were detected. Examine the output log. Some housekeeping may be needed.

0×01 One or more files were copied successfully (that is, new files have arrived).

0×00 No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized.

like image 31
Michael Petrotta Avatar answered Jan 25 '23 14:01

Michael Petrotta