What is Complile Error, Runtime Error?
✅ 컴파일 오류(Compile Error)
- 컴파일 오류는 소스 코드를 컴파일하는 동안 발생하는 오류입니다.
- 이러한 오류는 코드의 구문이나 타입 검사, 변수 선언 등과 같은 규칙에 어긋나는 경우에 발생합니다.
- 컴파일러는 이러한 오류를 감지하고 해당 줄의 오류를 보고합니다.
- 컴파일 오류가 발생하면 프로그램이 컴파일되지 않고 실행되지 않으며, 오류를 수정해야 합니다.
- 일반적인 컴파일 오류 예시: 문법 오류, 타입 불일치, 선언되지 않은 식별자 등
👉 아래는 컴파일 오류의 Syntax(문법) 오류에 대한 예시 코드입니다.
System.out.println("The value of x is: " + x;
^
1 error
위의 코드에서는 System.out.println 문장의 끝에 세미콜론(;
)이 빠져있는 문제가 있습니다. 이는 문법적인 오류로, 컴파일러는 이를 감지하여 컴파일 오류를 발생시킵니다.
위의 결과에서 볼 수 있듯이 컴파일러는 컴파일 시에 오류가 발생한 위치와 오류 메시지를 알려줍니다. 오류 메시지에서는 세미콜론이 예상되었으나 찾을 수 없다는 내용을 알려줍니다.
✅ 런타임 오류(Runtime Error)
- 런타임 오류는 프로그램이 실행 중에 발생하는 오류입니다.
- 이러한 오류는 컴파일 단계에서는 감지되지 않으며, 프로그램이 실행되는 동안 예외(exception) 또는 에러(error)로써 발생합니다.
- 런타임 오류는 프로그램 실행 중에 예상치 못한 상황이 발생하여 프로그램이 비정상적으로 종료되는 경우입니다.
- 일반적인 런타임 오류 예시: 배열 인덱스 범위 초과, 0으로 나누기, 널 포인터 참조 등이 있습니다.
👉 아래는 런타임 오류의 예시 코드입니다.
public class RuntimeErrorExample {
public static void main(String[] args) {
int x = 5;
int y = 0;
int result = x / y;
System.out.println("The result is: " + result);
}
}
위의 코드에서는 y
값을 0으로 나누는 문제가 있습니다. 이는 실행 시에 발생하는 오류로, 0으로 나누기는 수학적으로 정의되지 않기 때문에 예외 상황이 발생합니다.
위의 결과에서 볼 수 있듯이 프로그램 실행 중에 java.lang.ArithmeticException
예외가 발생하였으며, 오류 메시지에서는 어떤 예외가 발생했는지, 그리고 예외가 발생한 위치를 알려줍니다.
컴파일 오류는 컴파일 시점에 발견되며, 코드의 구조와 규칙을 준수하지 않아 발생합니다. 반면 런타임 오류는 실행 시점에 발생하며, 프로그램 실행 중 예상치 못한 상황이 발생하여 발생합니다. 따라서 컴파일 오류는 코드를 수정해야 하지만, 런타임 오류는 예외 처리나 오류 해결을 통해 대응해야 합니다.
Uploaded by N2T