프로그램의 논리 실행 흐름을 통제하는 조건문/반복문과 여러 데이터를 묶어 관리하는 배열(Array), 런타임 오류에 대비하는 **예외 처리(Exception Handling)**를 익힙니다.
1. 제어문 & 예외 처리 용어 사전 (Glossary)
- Enhanced for (향상된 for문): 배열이나 컬렉션의 요소들을 인덱스 없이 처음부터 끝까지 순회하는 직관적인 반복문 구문입니다. (
for(Type item : array)) - Array (배열): 동일한 자료형의 변수 여러 개를 연속된 메모리 공간에 묶어놓은 고정 길이 객체입니다.
- NullPointerException (NPE): 객체 참조 변수가 아무것도 가리키지 않는
null상태일 때 메소드나 멤버에 접근하려 하면 발생하는 代表 런타임 예외입니다. - try-catch-finally: 런타임 예외가 발생하더라도 프로그램이 비정상 종료되지 않도록 예외를 포획하고 마무리 리소스 자원을 해제하는 블록 구문입니다.
2. 배열과 향상된 for문 활용 예제
public class ArrayExample {
public static void main(String[] args) {
// 정수형 배열 선언 및 초기화
int[] scores = {90, 85, 95, 100, 78};
int sum = 0;
// 향상된 for문 (Enhanced for-loop) 순회
for (int score : scores) {
sum += score;
}
double average = (double) sum / scores.length;
System.out.println("성적 합계: " + sum + "점");
System.out.printf("성적 평균: %.2f점
", average);
}
}
3. try-catch-finally 예외 처리 실전 가이드
public class ExceptionExample {
public static void main(String[] args) {
int[] numbers = {10, 20, 30};
try {
System.out.println("배열 요소 읽기: " + numbers[5]); // IndexOutOfBoundsException 발생!
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("경고: 존재하지 않는 배열 인덱스에 접근했습니다!");
System.err.println("에러 메시지: " + e.getMessage());
} finally {
// 예외 발생 여부와 상관없이 항상 마무리를 위해 실행되는 구역
System.out.println("안전하게 예외 처리 구문이 종료되었습니다.");
}
}
}
4. 자주 묻는 질문 (Q&A)
Q. Checked Exception과 Unchecked Exception의 차이는 무엇인가요?
A. Checked Exception(예: IOException, SQLException)은 반드시 코드상에서 try-catch나 throws로 예외 처리를 해야만 컴파일이 되며, Unchecked Exception(RuntimeException 상속 클래스들)은 개발자의 주의로 회피 가능한 예외로 컴파일러가 강제하지 않습니다.