Environment.ExitCode Environment.ExitCode Environment.ExitCode Environment.ExitCode Property

定義

プロセスの終了コードを取得または設定します。Gets or sets the exit code of the process.

public:
 static property int ExitCode { int get(); void set(int value); };
public static int ExitCode { get; set; }
member this.ExitCode : int with get, set
Public Shared Property ExitCode As Integer

プロパティ値

終了コードを格納している 32 ビット符号付き整数。A 32-bit signed integer containing the exit code. 既定値は 0 (ゼロ) です。この値は、プロセスが成功して完了したことを意味します。The default value is 0 (zero), which indicates that the process completed successfully.

コマンドライン引数として渡された整数値を 2 倍に Double.exe という名前の簡単なアプリを次に示します。The following is a simple app named Double.exe that doubles an integer value passed to it as a command-line argument. 値がエラー コードを割り当てます、ExitCodeをエラー状態を示すプロパティです。The value assigns error codes to the ExitCode property to indicate error conditions. 例を正常にコンパイルする System.Numerics.dll アセンブリへの参照を追加する必要がありますに注意してください。Note that you must add a reference to the System.Numerics.dll assembly to successfully compile the example.

using System;
using System.Numerics;

public class Example
{
   private const int ERROR_BAD_ARGUMENTS = 0xA0;
   private const int ERROR_ARITHMETIC_OVERFLOW = 0x216;
   private const int ERROR_INVALID_COMMAND_LINE = 0x667;

   public static void Main()
   {
      string[] args = Environment.GetCommandLineArgs();
      if (args.Length == 1) {
         Environment.ExitCode = ERROR_INVALID_COMMAND_LINE;  
      }
      else {
         BigInteger value = 0;
         if (BigInteger.TryParse(args[1], out value))
            if (value <= Int32.MinValue || value >= Int32.MaxValue)
               Environment.ExitCode = ERROR_ARITHMETIC_OVERFLOW;
            else
               Console.WriteLine("Result: {0}", value * 2);

         else
            Environment.ExitCode = ERROR_BAD_ARGUMENTS;
      }
   }
}
Imports System.Numerics

Module Example
   Private Const ERROR_BAD_ARGUMENTS As Integer = &hA0
   Private Const ERROR_ARITHMETIC_OVERFLOW As Integer = &h216
   Private Const ERROR_INVALID_COMMAND_LINE As Integer = &h667
    
   Public Sub Main()
      Dim args() As String = Environment.GetCommandLineArgs()
      If args.Length = 1 Then
         Environment.ExitCode = ERROR_INVALID_COMMAND_LINE  
      Else
         Dim value As BigInteger = 0
         If BigInteger.TryParse(args(1), value) Then
            If value <= Int32.MinValue Or value >= Int32.MaxValue
               Environment.ExitCode = ERROR_ARITHMETIC_OVERFLOW
            Else
               Console.WriteLine("Result: {0}", value * 2)
            End If
         Else
            Environment.ExitCode = ERROR_BAD_ARGUMENTS
         End If     
      End If
   End Sub
End Module

例では、し、呼び出すことができますを使用して、エラー コードにアクセスできるように次のようにバッチ ファイルから、ERRORLEVELコマンド。The example can then be invoked from a batch file such as the following, which makes its error codes accessible by using the ERRORLEVEL command.


echo off  
Double.exe %1  
If errorlevel 1639 goto NoArg   
if errorlevel 534 goto Overflow  
if errorlevel 160 goto BadArg  
if errorlevel 0 echo Completed Successfully   
goto :EOF  

:NoArg  
echo Missing argument  
goto :EOF  

: Overflow  
echo Arithmetic overflow  
goto :EOF  

:BadArg  
echo Invalid argument  
goto :EOF  

バッチ ファイルを呼び出すことによって生成されたサンプルの出力を次に示します。The following shows some sample output produced by invoking the batch file.


>getdouble 123>echo offResult: 246Completed Successfully>getdouble 5912323109093>echo offArithmetic overflow>getdouble>echo offMissing argument>getdouble "a string">echo offInvalid argument  

前者をという名前のエントリ ポイントを定義する点を除いて Double.exe が関数で次の例と同じですが、そのコードに注意してくださいMainを持たない戻り値は、この例は、という名前のエントリ ポイントを定義しますが、Main整数を返します。Note that code for Double.exe is identical in function to the following example, except that the former defines an entry point named Main that has no return value, whereas this example defines an entry point named Main that returns an integer.

using System;
using System.Numerics;

public class Example
{
   private const int ERROR_SUCCESS = 0;
   private const int ERROR_BAD_ARGUMENTS = 0xA0;
   private const int ERROR_ARITHMETIC_OVERFLOW = 0x216;
   private const int ERROR_INVALID_COMMAND_LINE = 0x667;

   public static int Main()
   {
      string[] args = Environment.GetCommandLineArgs();
      if (args.Length == 1) {
         return ERROR_INVALID_COMMAND_LINE;  
      }
      else {
         BigInteger value = 0;
         if (BigInteger.TryParse(args[1], out value))
            if (value <= Int32.MinValue || value >= Int32.MaxValue)
               return ERROR_ARITHMETIC_OVERFLOW;
            else
               Console.WriteLine("Result: {0}", value * 2);

         else
            return ERROR_BAD_ARGUMENTS;
      }
      return ERROR_SUCCESS;
   }
}
Imports System.Numerics

Module Example
   Private Const ERROR_SUCCESS As Integer = 0
   Private Const ERROR_BAD_ARGUMENTS As Integer = &hA0
   Private Const ERROR_ARITHMETIC_OVERFLOW As Integer = &h216
   Private Const ERROR_INVALID_COMMAND_LINE As Integer = &h667
    
   Public Function Main() As Integer
      Dim args() As String = Environment.GetCommandLineArgs()
      If args.Length = 1 Then
         Return ERROR_INVALID_COMMAND_LINE  
      Else
         Dim value As BigInteger = 0
         If BigInteger.TryParse(args(1), value) Then
            If value <= Int32.MinValue Or value >= Int32.MaxValue
               Return ERROR_ARITHMETIC_OVERFLOW
            Else
               Console.WriteLine("Result: {0}", value * 2)
            End If
         Else
            Return ERROR_BAD_ARGUMENTS
         End If     
      End If
      Return ERROR_SUCCESS
   End Function
End Module

注釈

場合、Mainメソッドを返します。 void、このプロパティを使用して呼び出し元の環境に返される終了コードを設定することができます。If the Main method returns void, you can use this property to set the exit code that will be returned to the calling environment. 場合Main返さないvoid、このプロパティは無視されます。If Main does not return void, this property is ignored. このプロパティの初期値には 0 です。The initial value of this property is zero.

警告

ExitCodeプロパティは、符号付き 32 ビット整数。The ExitCode property is a signed 32-bit integer. プロパティが負の値の終了コードを返すことを防ぐためには、0x80000000 以上の値を使用する必要があります。To prevent the property from returning a negative exit code, you should not use values greater than or equal to 0x80000000.

エラーを示すゼロ以外の値を使用します。Use a non-zero number to indicate an error. アプリケーションでは、列挙体で独自のエラー コードを定義し、シナリオに基づいた適切なエラー コードを返すできます。In your application, you can define your own error codes in an enumeration, and return the appropriate error code based on the scenario. たとえば、値を必要なファイルが存在しないことを示すために 1 とファイルが間違った形式であることを示す 2 の値を返します。For example, return a value of 1 to indicate that the required file is not present and a value of 2 to indicate that the file is in the wrong format. Windows オペレーティング システムで使用される終了コードの一覧は、次を参照してください。システム エラー コードWindows ドキュメント。For a list of exit codes used by the Windows operating system, see System Error Codes in the Windows documentation.

適用対象