에서 콘솔 응용 프로그램의 종료 코드를 지정하려면 어떻게 해야 합니까?NET?
에 사소한 콘솔 응용 프로그램이 있습니다.NET. 더 큰 애플리케이션의 테스트 부분일 뿐입니다.콘솔 응용 프로그램의 "종료 코드"를 지정하려고 합니다.이거 어떻게 하는 거지?
세 가지 옵션:
- 에서 반품하실 수 있습니다.
Main을 선언하면Main반환 방법int. - 전화하셔도 됩니다.
- 속성을 사용하여 종료 코드를 설정할 수 있습니다.
Environment.ExitCode = -1;이는 반환 코드를 설정하지 않거나 위의 다른 옵션 중 하나를 사용하는 경우에 사용됩니다.
응용 프로그램(콘솔, 서비스, 웹 응용 프로그램 등)에 따라 다른 방법을 사용할 수 있습니다.
반품에 대한 답변 외에도...제정신을 위한 탄원해당하는 경우 플래그를 사용하여 종료 코드를 열거형으로 정의하십시오.디버깅 및 유지보수가 훨씬 쉬워집니다(게다가 도움말 화면에서 종료 코드를 쉽게 출력할 수 있습니다. 이 중 하나가 있습니다.
enum ExitCode : int {
Success = 0,
InvalidLogin = 1,
InvalidFilename = 2,
UnknownError = 10
}
int Main(string[] args) {
return (int)ExitCode.Success;
}
콘솔 응용 프로그램에서 종료 코드를 반환하는 데 사용할 수 있는 세 가지 방법이 있습니다.
- 수정합니다.
Main당신의 응용 프로그램에서 메소드를 반환합니다.int대신에void(값을 반환하는 함수)Integer대신에SubVB.NET에서)를 선택한 다음 해당 메서드의 종료 코드를 반환합니다. - 환경을 설정합니다.exitCode 속성을 exitCode로 보냅니다.방법 1이 우선한다는 것에 유의하세요 - 만약에
Main메소드가 아닌 다른 모든 것을 반환합니다.void(a는Sub그러면 이 속성의 값이 무시됩니다. - 종료 코드를 환경에 전달합니다.종료 방법.이렇게 하면 다른 두 가지 방법과는 달리 프로세스가 즉시 종료됩니다.
준수해야 하는 중요한 기준은 다음과 같습니다.0'성공'을 나타냅니다.
관련 항목에서는 열거형을 사용하여 응용 프로그램이 반환할 종료 코드를 정의하는 것을 고려합니다.FlagsAttribute를 사용하면 코드 조합을 반환할 수 있습니다.
또한 응용프로그램이 '콘솔 응용프로그램'으로 컴파일되었는지 확인합니다.
David가 제안한 방법을 사용할 경우 [Flags] Attribute도 살펴봐야 합니다.
이렇게 하면 열거형에 대해 비트 연산을 수행할 수 있습니다.
[Flags]
enum ExitCodes : int
{
Success = 0,
SignToolNotInPath = 1,
AssemblyDirectoryBad = 2,
PFXFilePathBad = 4,
PasswordMissing = 8,
SignFailed = 16,
UnknownError = 32
}
그리고나서
(ExitCodes.SignFailed | ExitCodes.UnknownError)
16 + 32입니다.:)
System.Environment.ExitCode
int code = 2;
Environment.Exit( code );
메인에서 해당 코드를 반환하면 됩니다.
int Main(string[] args)
{
return 0; // Or exit code of your choice
}
메인에 유효하지 않은 반환 서명이 있는 경우 종료 코드를 사용합니다.그렇지 않으면 반환하는 값으로 "설정"해야 합니다.
기본 메서드가 void를 반환하는 경우 이 속성을 사용하여 호출 환경으로 반환될 종료 코드를 설정할 수 있습니다.기본값이 void를 반환하지 않으면 이 속성은 무시됩니다.이 속성의 초기 값은 0입니다.
열거 옵션이 우수합니다.그러나 다음과 같이 숫자를 곱하여 개선할 수 있습니다.
enum ExitCodes : int
{
Success = 0,
SignToolNotInPath = 1,
AssemblyDirectoryBad = 2,
PFXFilePathBad = 4,
PasswordMissing = 8,
SignFailed = 16,
UnknownError = 32
}
오류가 여러 개인 경우 특정 오류 번호를 함께 추가하면 탐지된 오류의 조합을 나타내는 고유한 번호가 제공됩니다.
예를 들어, 오류 수준 6은 오류 4 및 2로만 구성될 수 있고, 12는 오류 4 및 8로만 구성될 수 있으며, 14는 2, 4 및 8로만 구성될 수 있습니다.
- C# 6.0 및 VB.NET 14.0(Visual Studio 2015), 환경.코드 또는 환경을 종료합니다.콘솔 응용 프로그램에서 0이 아닌 코드를 반환하려면 종료(exitCode)가 필요합니다.반환 유형 변경
Main효과가 없습니다. - F# 4.0(Visual Studio 2015)에서 다음의 반환 값
main진입점이 존중됩니다.
시스템 오류 코드는 시스템 오류 코드(0-499)에서 확인할 수 있습니다.
2는 "file not found(파일을 찾을 수 없음)", 5는 "access denied(액세스 거부)"와 같은 일반적인 코드를 찾을 수 있습니다.
알 수 없는 코드를 발견하면 이 명령을 사용하여 의미를 확인할 수 있습니다.
net helpmsg decimal_code
예를들면,
net helpmsg 1
돌아온다
Incorrect function
이 코드 사용
Environment.Exit(0);
아무것도 반환하지 않으려면 0을 int로 사용합니다.
저는 이렇게 하고 있습니다.
int exitCode = 0;
Environment.Exit(exitCode);
또는 다음과 같은 오류(개인 기본 설정)를 발생시킬 수 있습니다.
throw new ArgumentException("Code 0, Environment Exit");
나는 논쟁을 선택했습니다.예외입니다. 다른 항목을 입력할 수 있습니다.잘 될 겁니다.
다른 방법입니다.
public static class ApplicationExitCodes
{
public static readonly int Failure = 1;
public static readonly int Success = 0;
}
언급URL : https://stackoverflow.com/questions/155610/how-do-i-specify-the-exit-code-of-a-console-application-in-net
'programing' 카테고리의 다른 글
| jQuery 유효성 검사: 기본 오류 메시지 변경 (0) | 2023.05.17 |
|---|---|
| 깃 풀을 푸는 방법은? (0) | 2023.05.12 |
| ASP에서 DateTime을 특정 형식으로 렌더링하는 방법.NET MVC 3? (0) | 2023.05.12 |
| findOneAndUpdate 및 update의 mongoose 차이 (0) | 2023.05.12 |
| "x is null"과 "x == null"의 차이점은 무엇입니까? (0) | 2023.05.12 |