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 |