백엔드 6일차 - 자바 : 예외처리, 컬렉션

parang·2025년 4월 15일

LG CNS AM Inspire Camp 2기

목록 보기
17/50

예외처리

이전 포스트에 이어서 다시 복습하자면

try - catch : 직접 그 자리에서 예외 처리
throws : 메소드 선언부에 위치하고 있으며 호출한 쪽에서 처리하도록 유도함 -> 직접 처리하지 않고 넘김.

throw : 직접 예외를 던지는 방법, 하위 컴포넌트가 상위 컴포넌트에게 예외 전달하기 위해 사용

예를 들어, login 메소드에서 예외를 2개 던지고 있으면, login을 사용하는 곳에서 예외처리를 해주어야 하고, catch문이 2개 나오게 됨.

throw new xxx();

예외 종류는 1. 런타임 2. Exception이 있다. -> 상속 부모들.
런타임은 빨간 줄이 안뜸 -> 코드 간결

  • throw와 throws는 일반적으로 같이 쓰인다.

예외를 직접 만들 수도 있다.

고려해야 하는 것 : 1. 이름 2. exception? runtime? 선택!

컬렉션

대표적으로 List, Set, Map이 존재한다. (map은 컬렉션 상속 받지 않음)

List - ArrayList
Set - HashSet
Map - HashMap

ArrayList

옆으로 배열.
자바의 배열 []와는 조금 차이가 있다.
대표적으로는, 중간에 값이 지워졌을 때 자동으로 정렬이 된다.
형태 :

 ArrayList<String> list = new ArrayList<String>();
 List<String> list2 = new ArrayList<>();
 -> 두 코드는 같은 코드이다. 2번째 코드를 많이 사용한다.
 -> list의 자식 클래스가 ArrayList이기 때문에 사용하기에 보다 범위가 넓음.

LinkedList

다음 요소를 바라보는 형태.
1 3 5 6 으로 배열되어 있다고 하면,
1(3) 3(5) 5(6) 이런식으로 표현이 된다.

제네릭

<> 을 이용해 어떤 형태의 타입을 넣을 것인지 꼭 명시해 사용한다.
제네릭은 기본 자료형 사용 불가 (ex : int -> Integer)
Wrapper Class : 기본 자료형이 각 매칭되는 참조 자료형

Map

Map이란 key - value가 같이 들어가 있는 리스트라고 생각하면 된다.

형태:

<코드 발전 형태>
HashMap map = new HashMap();
HashMap<,> map = new HashMap<>();
Map<,> map = new HashMap<>();
 -> 부모 타입으로 선언하자.

<표준>
Map<String, Integer> = new HashMap<>(); -> 기본!
List<Map<String, Object>> list = new ArrayList<>; -> 흔히 사용되는 형태

리스트와 맵의 큰 차이점은 대괄호 vs 중괄호 이다.

Stream API

데이터를 처리하는 방법 중 하나이다.
list를 stream() 함수를 쓴 다음, map, forEach등 연산에 관한 코드를 작성하면 된다.

List<String>list = List.of("a", "bb", "ccc");

* 모든 요소를 출력하려고 할 때.

list.stream().forEach(v -> System.out.println(v));
->이런식으로 람다로 표현.


profile
파랑입니다.

0개의 댓글