[Java] 자바 프로그램 강제 종료_System.exit()

Jeini·2022년 12월 7일
0

☕️  Java

목록 보기
23/59
post-thumbnail

💡 프로그램 종료_ System.exit( )

강제적으로 JVM을 종료시키고 싶을 때는 System 클래스의 exit() 메서드를 호출하면 된다.

✔️ exit()

  • 현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 한다.
  • int 매개값을 지정하도록 되어 있는데 이 값을 종료 상태값이라고 한다.

    ❗️ 정상종료: 0
    ❗️ 비정상종료: 0외의 다른 값

System.exit(0); //정상종료
System.exit(1); //비정상종료

System.exit()메서드는 어떤 값을 주더라도 종료가 된다.

🤔 만약 특정 값이 입력되었을 경우에만 종료하고 싶다면 ❓

  • 자바 보안 관리자를 직접 설정해서 종료 상태값을 확인하자

System.exit()가 실행되면 보안관리를 입력되지 않으면 SecurityException 을 발생시켜 System.exit()를 호출한 곳에서 예외 처리를 할 수 있도록 해준다.

checkExit() 가 정상적으로 실행되면 JVM은 종료된다.

✏️ 보안관리자 설정 후 System.exit( ) 예제

public class ExitExample {
    public static void main(String[] args)  {
        //종료 상태 값으로 5가 입력되면 JVM을 종료하도록 보안관리자를 설정
        System.setSecurityManager(new SecurityManager() {
            @Override
            public void checkExit(int status) {
                if(status != 5) {
                    throw new SecurityException(); // status가 5가되면 프로세스 종료
                } else {
                    System.out.println("시스템 종료!");
                }
            }
        });

        for(int i=0; i<10; i++) {
            System.out.println(i);
            try { //try catch문 미 실행 시 오류
                System.exit(i); // i 가 5가 될때 프로세스 종료
            } catch(SecurityException e) {}
        }
    }
}
0
1
2
3
4
5
시스템 종료!

References
: https://altongmon.tistory.com/205

profile
Fill in my own colorful colors🎨

0개의 댓글