Programing

시스템의 차이.

lottogame 2020. 3. 27. 07:57
반응형

시스템의 차이. Java에서 exit (0), System.exit (-1), System.exit (1)


Java에서 다음과의 차이점을 알고 싶습니다.

System.exit(0);
System.exit(-1);
System.exit(1);

위의 코드를 언제 적절하게 사용해야합니까?


프로그램 실행이 양호하거나 나쁜 경우 종료 매개 변수가 규정되어야합니다. 오래된 프로그래밍 언어의 일종으로, 문제가 있는지, 무엇이 잘못되었는지 아는 것이 유용합니다.

종료 코드는

  • 0 처형이 잘되었을 때;
  • 1, -1, whatever != 0약간의 오류가 발생했을 때, 당신은 오류의 다른 종류에 대해 서로 다른 값을 사용할 수 있습니다.

올바른 종료 코드가 양수 (UNIX에서는 의미)로 범위에 따라 사용 된 경우 :

  • 1-127사용자 정의 코드 (을 호출하여 생성됨 exit(n))
  • 128-255SIGSEGV 또는 SIGTERM 과 같은 다른 유닉스 신호로 인해 종료에 의해 생성 된 코드

그러나 Java로 코딩하는 동안 신경 써야한다고 생각하지는 않습니다. 약간의 정보 일뿐입니다. 프로그램이 표준 도구와 상호 작용하도록하려는 경우 유용합니다.


Zero => 다 괜찮아

Positive => 내가 잘못했을 가능성이있는 것으로 잘못 예상 됨 (잘못된 명령 줄, 파일을 찾을 수 없음, 서버에 연결할 수 없음)

Negative=> 내가 전혀 예상하지 못한 것이 잘못되었습니다 (예 : 시스템 오류-예기치 않은 예외-외부 강제 종료 kill -9)

(128보다 큰 값은 실제로 8 비트 부호있는 이진 또는 2의 보수로 간주되는 경우 음수입니다)

좋은 표준 종료 코드가 많이 있습니다.


System.exit(system call)종료 시퀀스를 시작하여 현재 실행중인 Java 가상 머신을 종료합니다. 인수는 상태 코드 역할을합니다 .

일반적으로 0이 아닌 상태 코드는 비정상 종료를 나타냅니다.

  System.exit(0) or EXIT_SUCCESS;  ---> Success
  System.exit(1) or EXIT_FAILURE;  ---> Exception
  System.exit(-1) or EXIT_ERROR;   ---> Error

Java 에서 더 읽기

0성공적인 실행을위한 Unix 및 Linux 시스템 1실패한 실행을위한 이상.


종료 상태 코드가 0이 아닌 경우 일반적으로 비정상 종료를 나타냅니다. if n != 0는 다양한 n에 의미를 적용하는 프로그래머에게 달려 있습니다.

에서 https://docs.oracle.com/javase/7/docs/api/java/lang/System.html .


여기에 답이 있습니다.

System.exit(0);// normal termination - Successful - zero
System.exit(-1);//Exit with some Error
System.exit(1);//one or any positive integer // exit with some Information message

exit(0)일반적으로 성공적인 종료를 나타내는 데 사용됩니다. exit(1)또는 exit(-1)0이 아닌 다른 값은 일반적으로 종료에 실패했음을 나타냅니다.


좋은 오류는 255보다 큰 오류 코드가 오류 코드 % 256으로 변환되는 것입니다. 사용자 지정 오류 코드> 255를 사용하고 응용 프로그램 논리에서 정확한 오류 코드를 기대하는 경우 특히주의해야합니다. http://www.tldp.org/LDP/abs/html/exitcodes.html


다른 사람들 0은 성공의 의미로 대답 합니다.

박쥐 파일 (창)을 사용 System.exit(x)하면 효과가 있습니다.

코드 자바 (myapp) :

if (error < 2){
    help();
    System.exit(-1);    
}
else{
    doSomthing();
    System.exit(0);
}

}

박쥐 파일 :

java -jar myapp.jar
if %errorlevel% neq 0 exit /b %errorlevel%
rem -- next command if myapp is success --

system.exit ()에 넣은 숫자의 차이는 다른 답변에 설명되어 있습니다. 그러나 실제 차이점은 System.exit ()가 호출 프로세스로 리턴되는 코드라는 것입니다. 프로그램이 운영 체제에 의해 호출되면 리턴 코드는 OS에 system.exit ()가 모든 것보다 0을 리턴했지만 잘못되지 않은 경우 상위 프로세스에 처리기가있을 수 있음을 OS에 알립니다


규칙에 따라 System.exit (0) , 0이 아닌 상태 코드는 비정상 종료를 나타냅니다.

System.exit (1) -일부 오류로 인해 종료에 실패했음을 의미합니다


class calc{
public static void main(String args[])
{
    int a, b, c;
    char ch;
    do{

        Scanner s=new Scanner(System.in);

                System.out.print("1. Addition\n");
                System.out.print("2. Substraction\n");
                System.out.print("3. Multiplication\n");
                System.out.print("4. Division\n");
                System.out.print("5. Exit\n\n");

                System.out.print("Enter your choice : ");
                ch=s.next().charAt(0);
                    switch (ch)
                    {
                        case '1' :
                        Addition chose1=new Addition();
                        chose1.add();
                        break;

                        case '2' :
                        Substraction chose2=new Substraction();
                        chose2.sub();
                        break;

                        case '3' :
                        Multiplication chose3= new Multiplication();
                        chose3.multi();
                        break;

                        case '4' :
                        Division chose4=new Division();
                        chose4.divi();
                        break;

                        case '5' :
                        System.exit(0);
                        break;

                        default :
                        System.out.print("wrong choice!!!");
                        break;
                    }
        System.out.print("\n--------------------------\n");                     
    }while(ch !=5); 
}

}

위의 코드에서 System.exit (0); 내가 사례 5를 누르면 제대로 종료되지만 System.exit (1)을 사용할 때; 그리고 케이스 5를 누르면 오류가 발생하고 다시 케이스 15로 시도하면 올바르게 종료됩니다. 우리는 인수에 int를 넣을 때마다 해당 위치에서 문자를 가져옵니다. (4) 해당 문자열에서 5 번째 문자를 받는다는 의미이고 (3) 입력 된 문자열에서 4 번째 문자를 받는다는 의미

참고 URL : https://stackoverflow.com/questions/2434592/difference-in-system-exit0-system-exit-1-system-exit1-in-java

반응형