본문 바로가기
JAVA/자바와 데이터 다루기

컴파일 오류 vs 런타임 오류

by DEVLIB 2025. 4. 13.
728x90

1. 컴파일 오류 (Compile-time Error)

코드를 컴파일할 때(= 실행 전) 발생하는 오류
문법적으로 잘못된 경우가 대부분입니다.

대표 예시

int x = "hello";      // 타입 오류
System.out.println(x  // 괄호 닫지 않음
 

특징

항목 내용
발생 시점 코드 컴파일 중
주 원인 문법, 타입, 선언 오류 등
해결 방법 IDE(이클립스, IntelliJ)에서 빨간 밑줄로 즉시 확인 가능

2. 런타임 오류 (Runtime Error)

프로그램 실행 도중 발생하는 오류
컴파일은 통과했지만, 실행 중 예외 상황이 발생해요.

대표 예시

int[] arr = {1, 2, 3};
System.out.println(arr[5]);  // 배열 인덱스 초과

String str = null;
System.out.println(str.length());  // NullPointerException

특징

항목 내용
발생 시점 프로그램 실행 중
주 원인 배열 범위 초과, 0으로 나누기, null 접근 등
해결 방법 try-catch 문, 디버깅으로 예외 추적 필요

두 오류 비교 정리

비교 항목 컴파일 오류 런타임 오류
시점 컴파일(작성) 실행
원인 문법/타입 오류 예외 상황, 논리 오류
발견 방법 컴파일러가 즉시 감지 실행해야 발견됨
예시 세미콜론 빠짐, 변수 미선언 배열 인덱스 오류, null 접근
해결 문법 수정 예외 처리 / 로직 수정 필요

실습 아이디어

  • 컴파일 오류 intentionally 만들기 (int a = "문자열";)
  • null, 0으로 나누기, 배열 범위 초과 실습 → try-catch로 예외 처리
  • 사용자 입력 기반의 NumberFormatException 예외 확인

예외(Exception)과의 관계

  • 대부분의 런타임 오류는 예외(Exception) 형태로 발생
  • try-catch로 잡아서 처리할 수 있어요:
try {
    int result = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("0으로 나눌 수 없습니다!");
}

마무리 요약


구분 컴파일 오류 런타임 오류
언제 발생? 코드 작성/컴파일 시 실행 중
프로그램 실행 가능? 실행 자체 안 됨 실행 도중 중단
예시 문법 오류, 타입 불일치 예외, 논리 오류 등
해결 방법 코드 문법 수정 예외 처리, 디버깅 등
LIST

'JAVA > 자바와 데이터 다루기' 카테고리의 다른 글

반복문과 함께 사용하기  (0) 2025.04.13
ArrayList, HashMap 사용해보기  (0) 2025.04.13
BufferedReader, FileWriter 사용법  (0) 2025.04.13
파일 쓰기/읽기  (0) 2025.04.13