인프런 커뮤니티 질문&답변

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

김영한의 실전 자바 - 중급 1편

자바 예외 처리2 - 예외 기본 규칙

예외 처리

작성

·

243

0

수업중에 만약 예외 처리를 못하고 계속 던지면 main() 밖으로 나가는 순간 예외 로그를 출력하면서 시스템이 종료된다고 나와 있는데, 시스템이 종료된다는 말은 무슨 말인가요 ?

저 아래 코드에서 다른 줄에 있는 .... 코드를 실행하지 않고 line 10 으로 건너뛴다는 이야기인가요? 아니면 건너뛰지도 않고 그냥 끝나버린다는 말인가요 ?

public class Main {
    public static void main(String[] args) {

        ........
        ..........

    }
} ( line 10) 

답변 2

0

ghuhan18님의 프로필 이미지
ghuhan18
질문자

그러면 try로 line3 을 잡고 catch 에서 예외 처리하면

똑같이 프로그램이 종료가 되나요? 아니면 catch{} 문을 마무리하고 다시 Line 3 으로 돌아가나요 ?

0

안녕하세요. ghuhan18님, 공식 서포터즈 OMG입니다.

프로그램의 시작은 main()함수에서 시작하여 main() 안의 모든 코드(마지막줄까지 모두)가 실행되면, 프로그램은 종료됩니다.

public class Main {
    public static void main(String[] args) {
        // Line1. 코드 정상 실행
        // Line2. 코드 정상 실행
        // Line3. 실행 중 오류 발생!
        // Line4. 다음 코드는 실행하지 않음
    }
} 

 

Line1부터 4까지 각각의 코드가 존재하고 실행하는 상황에서 중간에(Line3) 오류가 발생한다면 다음 코드(Line4)는 실행되지 않고 프로그램이 종료된다는 설명으로 이해하시면 될 것 같습니다 😀

질문에 남기신 Line10은 프로그램이 실행되는 main영역이 아니여서

후자로 이해하시는게 맞을 것 같아요^^

감사합니다.

ghuhan18님의 프로필 이미지
ghuhan18
질문자

그러면 try로 line3 을 잡고 catch 에서 예외 처리하면

똑같이 프로그램이 종료가 되나요? 아니면 catch{} 문을 마무리하고 다시 Line 3 으로 돌아가나요 ?


public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int num = 10;
        int input = scanner.nextInt(); // 0을 입력

        try {
            num = num / input;
            // 예외 발생
            System.out.println("예외 발생 후");
        } catch (Exception e) {
            System.out.println("catch문 실행");
        }
        System.out.println("try-catch 바깥 호출");
    }
}

코드의 실행 결과를 직접 확인해보시면 프로세스를 확인해보실 수 있을거라 생각합니다 ^^

 

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

질문하기