언어(Language)/Java

[Java] 자바 컴파일 에러와 런타임 에러

잇트루 2022. 9. 20. 06:00
반응형

컴파일 에러(Compile Time Error)

컴파일 에러는 컴파일할 때 발생하는 에러이다. 즉, 자바 컴파일러가 에러를 감지하여 프로그램을 실행조차 하지 않는다. 이 경우 IDE에서 미리 감지하여 알려주기 때문에 상대적으로 쉽게 발견하고 수정할 수 있다.

 

컴파일 에러에는 주로 세미 콜론(;) 또는 괄호() 생략, 잘못된 데이터 타입, 잘못된 포맷 등 문법적인 문제인 Syntax 에러를 발생한다.

public class ErrorTest {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println(i)
        }
    }
}
java: ';' expected

다음과 같이 System.out.println(i) 구문에서 세미콜론(;)을 생략하여 실행했을 때 발생하는 컴파일 에러이다. 컴파일 에러는 상대적으로 쉽게 발견하여 수정할 수 있다.

 

런타임 에러(Run Time Error)

런타임 에러는 실행 시 발생하는 에러를 뜻한다. 이 경우 코드 상에서는 문제가 없는 것처럼 보이지만 실행할 경우 실행 중간에 예기치 않는 예외를 발생한다. 즉, 개발자가 컴퓨터에게 수행할 수 없는 특정 작업을 요청할 때 실행 도중에 발생한다. 자바에서의 런타임 에러의 경우 JVM에 의해 감지하여 발생시킨다.

public class ErrorTest {
    public static void main(String[] args) {
        System.out.println(10 / 0);
    }
}

다음과 같이 10을 0으로 나누려 한다면, ArithmeticException 예외가 발생한다.

ArithmeticException은 특정 숫자를 0으로 나누었을 때 발생하는 예외이다.

반응형