자바프로그래밍

ArrayList 확장 for문 인덱스 for문 예외처리 Exception Handling Throwable NullPointerException 사용자 정의 예외 자바프로그래밍

aiyoon 2025. 5. 29. 09:16
반응형

✅ 자바 10장: 컬렉션 API와 반복문

1. 확장 for문 (향상된 for문)

for (타입 변수명 : 배열/컬렉션) { 실행문; }
  • 모든 요소 순차 탐색용
  • 읽기 전용 → 요소 변경은 불가

2. 인덱스 for문

for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
  • 인덱스 접근 필요할 때 사용
  • 요소 수정 가능

3. ArrayList 실습 예시

ArrayList<String> list = new ArrayList<>(); 
list.add("서울"); 
list.add("북경"); ...
  • list.get(i) : 인덱스로 요소 꺼내기
  • list.size() : 리스트 크기 확인

✅ 자바 11장: 예외(Exception) 처리

1. 예외 종류

예외 원인 예시
ArrayIndexOutOfBoundsException 배열 인덱스 범위 초과
ArithmeticException 0으로 나눔
NullPointerException null 객체 접근
FileNotFoundException 없는 파일 접근
사용자 정의 예외 직접 만든 예외 클래스
 

2. 예외 처리 방법

try { 
// 예외 발생 가능 코드
} catch (Exception e) { 
    e.printStackTrace(); // 오류 위치 추적 
    System.out.println(e.getMessage()); // 메시지만 출력 
}
  • e.printStackTrace() → 에러 로그 (Stack trace 구조로 출력)
  • e.getMessage() → 예외 메시지만 출력

3. throws와 throw

구분 설명
throw 예외 발생
throws 예외를 호출한 곳으로 넘김
 

4. 사용자 정의 예외 만들기

class NegativeNumberException extends Exception { 
    public NegativeNumberException() { 
    	super("음수는 허용되지 않습니다"); 
    } 
}
 
if (time < 0) { 
	throw new NegativeNumberException(); 
}

5. 예외 흐름 팁

  • 하나의 예외 발생 후 실행 중단됨
  • 예외가 발생해도 프로그램 흐름을 유지하려면 try~catch 필수

6. 업캐스팅 vs 다운캐스팅 in 예외처리

  • catch (Exception e) 는 마지막에 와야 함 → 모든 예외의 상위 클래스이므로
  • 예: IOException, NullPointerException은 Exception을 상속

✅ 실무 관련 팁

  • 예외 처리 시 enum, Comparable, 람다식, stream까지 연계 학습 필요
  • 사용자 입력 유효성 검사 시 Exception 필수
  • 스프링, 리액트 등에서도 예외 핸들링이 매우 중요

 

반응형