有关控制台应用程序返回的错误代码的最佳实践是什么?

时间:2009-10-21 21:03:46

标签: c# console-application dos

在c#中,您可以使用Environment.Exit(n)将一个整数返回给底层调用者(例如,可以使用DOS脚本中的ERRORLEVEL变量对其进行测试)。

是否有关于这些代码的最佳做法?

我认为0 =没有错误......但是有数字保留吗?我可以使用负数吗?等

谢谢!

2 个答案:

答案 0 :(得分:6)

零通常意味着没有错误。至于其他人,我认为没有保留集。我通常会定义我的应用程序的不同返回代码的含义并记录它们。

DOS只处理最多256个可能的返回码,但实际上我怀疑你会使用/需要那么多。

您可以使用负值,但请注意,负值并不一定意味着与正值有任何不同。

答案 1 :(得分:3)

我见过的返回代码的最广泛使用是在Robocopy中。它可能为其他应用程序提供指导。 Robocopy使用返回码作为标志:

  

0×10严重错误。 Robocopy没有   复制任何文件。这是一种用法   错误或由于不足而导致的错误   对源或访问权限   目的地目录。

     

0×08某些文件或目录可以   不被复制(发生了复制错误   并且超出了重试限制)。   进一步检查这些错误。

     

0×04某些不匹配的文件或   目录被检测到。检查一下   输出日志。家政可能是   必要的。

     

0×02一些额外的文件或目录   被发现了。检查输出日志。   可能需要一些家务管理。

     

0×01复制了一个或多个文件   成功(即新文件有)   到达)。

     

0×00没有发生错误,没有   复制完成了。来源和   目标目录树是   完全同步。