본문 바로가기
Java

Java_4주차

by shulk 2023. 10. 16.

1. 오류 vs 예외

*오류는 일반적으로 회복이 불가능한 문제 / 예외는 일반적으로 회복이 가능한 문제

*현실적으로 코드레벨에서 할 수 있는 문제상황에 대한 대응은 “예외처리”에 속한다.

 

2. 예외의 종류 

 

3. 예외를 직접 정의하기

이미 자바 자체에서 구현해 놓은 예외들이 많이 있는데 어떤 에러 일어났는데 그 예외가 없을시 내가 직접 그 예외를 따로 정의 할 수 있다. ex)↓

예외 직접 정의

4. throw,throws 

throws는 그 자리에서 예외처리 하는게 아닌 부른쪽에서 예외 처리 하는거다.

캡처보면 밑에 writeFile() 함수가 있는데 옆에 throws IOException이 있다 (IOException는 여러 예외중 파일관련 예외)

이건 이 함수에서 예외 처리 안하고 이 함수를 호출한곳에서 예외 처리를 해준다는거다.

만약 캡처에 main함수 옆에도 throws IOException 적으면 main에서 아닌 main을 호출한곳에서 예외처리하는거다. 

(다른 강의에서 들었던 내용인데 이게 더 이해하기 쉬웠던듯)

 

5. Chained Exception (노션으로 전체 다시 복습 추천!)

예외들이 연결된걸 뜻한다.   ex)  a->b->c   a의 예외 원인은 b에 있고 b는 c

initCause는 예외를 연결하는 메소드고,getCaouse는 연결한 예외를 반환하는 메소드이다.

*왜 예외 연결을 해야하는지?? ↓

 

6. 제네릭

* 제네릭은 클래스 또는 메서드에 사용 할 수 있고, 클래스 이름 뒤에 <> 문법 안에 들어가야 할   타입 변수를 지정한다.

* 메소드에서는 접근자 리턴 타입 사이에 타입변수 지정한다. ex) public static <T> String check(T t){}

* 타입 변수를 여러개 할시 보통 T,U,V,E로 한다.

* Generic 클래스를 원시 타입 이라고 한다.

 

 

7. 제네릭의 제한

*static은 인스턴스화 시키지 않아도 사용 할 수 있는데 제네릭의 타입 변수는 인스턴스 변수로 간주 된다해서 static 멤버에 사용 할 수 없다.

* 제네릭 배열을 생성 할 수 없다.

 

8. 와일드 카드를 통해 제네릭의 제한을 구체적으로 정할 수 있다.

와일드카드 뜻 ↓

ex) 리스트에서 <?> 할시 생성과 동시에 값 추가할때 말고는 값을 추가(a.add(2) 할 수 없고 읽기만 가능한듯.

읽을때는 Object형으로 해야한다. ↓

'Java' 카테고리의 다른 글

Java_5주차-(2)  (0) 2023.10.17
Java_5주차-(1)  (0) 2023.10.16
Java_3주차-(2)  (0) 2023.10.13
Java_3주차-(1)  (0) 2023.10.13
Java_2주차  (0) 2023.10.12