답변:
프로그램 실행이 양호하거나 나쁜 경우 종료 매개 변수가 규정되어야합니다. 오래된 프로그래밍 언어의 일종으로, 문제가 있는지, 무엇이 잘못되었는지를 아는 것이 유용합니다.
종료 코드는
0
처형이 잘되었을 때;1
, -1
, whatever != 0
약간의 오류가 발생했을 때, 당신은 오류의 다른 종류에 대해 서로 다른 값을 사용할 수 있습니다.올바른 종료 코드가 양수 (UNIX에서는 의미)로 범위에 따라 사용 된 경우 :
1-127
사용자 정의 코드 (을 호출하여 생성됨 exit(n)
)128-255
SIGSEGV 또는 SIGTERM 과 같은 다른 유닉스 신호로 인해 종료에 의해 생성 된 코드그러나 Java로 코딩하는 동안 신경 써야한다고 생각하지는 않습니다. 약간의 정보 일뿐입니다. 프로그램이 표준 도구와 상호 작용하도록하려는 경우 유용합니다.
java MyApp && echo success
"성공"을 인쇄합니다. MyApp에 종료 코드가 0 인 경우, 즉 exit(0)
오류없이 기본 메소드의 호출 또는 종료에 도달 한 경우.
Zero
=> 다 괜찮아
Positive
=> 내가 잘못했을 가능성이있는 것으로 잘못 예상 됨 (잘못된 명령 줄, 파일을 찾을 수 없음, 서버에 연결할 수 없음)
Negative
=> 내가 전혀 예상하지 못한 것이 잘못되었습니다 (예 : 시스템 오류-예상치 못한 예외-외부 강제 종료 kill -9
)
(128보다 큰 값은 실제로 8 비트 부호있는 이진 또는 2의 보수로 간주되는 경우 음수입니다)
여기에 좋은 표준 종료 코드가 많이 있습니다.
kill -15
종종 종료 코드의 결과) 128+signal
, 그러나 (별도로 9 행)이 처리 될 수 있으며 다른 종료 코드를 반환하십시오. -
에서이 kill -15
마크 신호가 아닌 PID로 번호가 마이너스 신호를 만들지 않는 것이다.
System.exit(-1)
쉘에 echo $?
'255'를 얻습니다. 이것이 킬 매개 변수의 '-'때문이 아니라 음수가 시스템 오류라고 말한 이유입니다. 내가 그렇게 생각했다고 진심으로 생각 했니? 그러나 Bash가 이러한 코드를 구성하는 메커니즘을 설명해 주셔서 감사합니다.
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
실패한 실행을위한 이상.
EXIT_*
Java에는 존재하지 않습니다.
종료 상태 코드가 0이 아닌 경우 일반적으로 비정상 종료를 나타냅니다. if n != 0
는 다양한 n에 의미를 적용하는 프로그래머에게 달려 있습니다.
에서 https://docs.oracle.com/javase/7/docs/api/java/lang/System.html .
exit(0)
일반적으로 성공적인 종료를 나타내는 데 사용됩니다. exit(1)
또는 exit(-1)
0이 아닌 다른 값은 일반적으로 종료에 실패했음을 나타냅니다.
좋은 오류는 255보다 큰 오류 코드가 오류 코드 % 256으로 변환된다는 것입니다. 사용자 지정 오류 코드> 255를 사용하고 응용 프로그램 논리에서 정확한 오류 코드를 기대하는 경우 특히주의해야합니다. http://www.tldp.org/LDP/abs/html/exitcodes.html
상태가 0이 아닌 상태 코드 인 System.exit (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 번째 문자를 받는다는 의미