.NET에서 콘솔 응용 프로그램의 종료 코드를 어떻게 지정합니까?
.NET에 간단한 콘솔 응용 프로그램이 있습니다. 더 큰 응용 프로그램의 테스트 부분 일뿐입니다. 콘솔 응용 프로그램의 "종료 코드"를 지정하고 싶습니다. 어떻게해야합니까?
3 가지 옵션 :
- 메소드를 return으로
Main
선언 하면에서 리턴 할 수 있습니다 .Main
int
- 에 전화 할 수 있습니다
Environment.Exit(code)
. - 속성을 사용하여 종료 코드를 설정할 수 있습니다
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
대신Sub
하고 그 방법에서 종료 코드를 반환 VB.Net에서 참조). - Environment.ExitCode 특성을 종료 코드로 설정하십시오 . 방법 1이 우선합니다.
Main
방법 이 VB.Net에void
있는 것 이외의 다른 값을 반환 하면Sub
이 속성 값이 무시됩니다. - 종료 코드를 Environment.Exit 메소드에 전달하십시오. 다른 두 가지 방법과 달리 프로세스가 즉시 종료됩니다.
지켜야 할 중요한 표준 0
은 '성공' 을 나타냅니다.
관련 주제에서 열거를 사용하여 애플리케이션이 리턴 할 종료 코드를 정의하십시오. 있는 FlagsAttribute는 당신이 코드의 조합을 반환 할 수 있습니다.
또한 응용 프로그램이 '콘솔 응용 프로그램'으로 컴파일되어 있는지 확인하십시오.
David가 제안한 방법을 사용하려면 [Flags] 속성도 살펴보십시오.
이를 통해 열거 형에서 비트 단위의 연산을 수행 할 수 있습니다.
[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
http://msdn.microsoft.com/en-us/library/system.environment.exitcode.aspx
int code = 2;
Environment.Exit( code );
main에서 적절한 코드를 반환하십시오.
int main(string[] args)
{
return 0; //or exit code of your choice
}
메인에 void 리턴 서명이 있으면 ExitCode를 사용하십시오. 그렇지 않으면 리턴 한 값으로 "설정"해야합니다.
Main 메소드가 void를 리턴하면이 특성을 사용하여 호출 환경으로 리턴 될 종료 코드를 설정할 수 있습니다. Main이 void를 반환하지 않으면이 속성은 무시됩니다. 이 속성의 초기 값은 0입니다.
Scott Munro의 답변에 대한 업데이트 :
- C # 6.0 및 VB.NET 14.0 (VS 2015)에서는 콘솔 응용 프로그램에서 0이 아닌 코드를 반환하려면 Environment.ExitCode 또는 Environment.Exit (exitCode) 가 필요합니다. 의 반환 유형을 변경해
Main
도 아무런 영향이 없습니다. - F # 4.0 (VS 2015)에서는
main
진입 점 의 반환 값 이 존중됩니다.
열거 옵션은 우수하지만 다음과 같이 숫자를 곱하여 향상시킬 수 있습니다.
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만으로 구성 될 수 있습니다.
내 2 센트 :
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx 에서 시스템 오류 코드를 찾을 수 있습니다.
"파일을 찾을 수 없음"에 대해 2 또는 "액세스 거부"에 대해 5와 같은 일반적인 코드를 찾을 수 있습니다.
알 수없는 코드를 발견하면이 명령을 사용하여 그 의미를 찾을 수 있습니다.
net helpmsg decimal_code
예 :
순 helpmsg 1
보고
잘못된 기능
이 코드를 사용하십시오
Environment.Exit(0);
아무것도 반환하지 않으려면 0을 정수로 사용하십시오.
'development' 카테고리의 다른 글
N 번 반복 된 단일 항목 목록 만들기 (0) | 2020.02.16 |
---|---|
함수의 존재를 확인하기 위해 템플릿을 작성할 수 있습니까? (0) | 2020.02.16 |
Array.prototype.slice.call ()은 어떻게 작동합니까? (0) | 2020.02.16 |
heroku-모든 로그를 보는 방법 (0) | 2020.02.16 |
비트 맵을 위치에 저장 (0) | 2020.02.16 |