오늘의 키워드
- 오류와 예외
- try, catch, finally문
- Generic
오늘의 내용
- 오류와 예외
- 오류 : 일반적으로 회복이 불가능한 문제, 주로 환경적인 원인으로 발생, 발생원인 확인 후 대응한다
- 예외 : 회복이 가능한 문제로 코드레벨에서 할 수 있는 대응은 '예외처리'에 속한다
- 컴파일 에러 : 자바 프로그래밍의 규칙을 지키지 않으면 발생하고 문법을 맞게 작성하면 해결된다. 특정한 문제는 인지만 하고 예외처리를 하지 않으면 발생
- 런타임 에러 : 컴파일은 잘되었지만 프로그램 실행도중 발생하는 예외이다
- 확인된 예외 : 컴파일 시점에 확인하는 예외, 반드시 예외처리를 해줘야 하는 예외, 컴파일 에러와 다르다
- 미확인된 예외 : 런타임 시점에 확인되는 예외, 예외처리가 반드시 필요하지 않은 예외
- try, catch, finally문
- 아래는 구문의 사용 예제
- try {
// 1. 위험한 메소드의 실행을 "시도" 해 봅니다.
// "시도" 해보는 코드가 들어가는 블럭입니다.
ourClass.thisMethodIsDangerous();
} catch (OurException e) {
// 2. 예외가 발생하면, "잡아서" handling 합니다.
// 예외가 발생하는경우 "handling" 하는 코드가 들어가는 블럭입니다.
// 즉 try 블럭 내의 구문을 실행하다가 예외가 발생하면
// 예외가 발생한 줄에서 바로 코드 실행을 멈추고
// 여기 있는 catch 블럭 내의 코드가 실행됩니다.
System.out.println(e.getMessage());
} finally {
// 3. 예외의 발생 여부와 상관없이, 실행시켜야 하는 코드가 들어갑니다.
// 무조건 실행되는 코드가 들어가는 블럭입니다.
System.out.println("우리는 방금 예외를 handling 했습니다!");}
- Chained Exception
- 연결된 예외를 말함, 여러 개의 예외를 하나의 큰분류로 묶어서 다루기 위해 사용한다
- initCause() - 원인예외를 등록
- getCause() - 원인예외를 반환
- Generic
- public class Generic<T> { ... } 제네릭을 사용한 클래스를 제네릭 클래스라고 한다
- 제네릭의 효용 : 중복되거나 필요없는 코드를 줄이는 것 그러면서도 타입 안정성을 해치지 않는 것
- 제네릭에서 <> 사이에 들어가는 변수명 T는 타입변수라 한다
- static멤버들은 제네릭을 사용할 수 없다
- 다수의 타입변수 사용할 수 있다 (= public class Generic<T, U, E> { })
- 상속과 타입의 관계는 그대로 적용된다
- 와일드카드를 통해 제네릭의 제한을 정할 수 있다
- <? extends T> : T와 그 자손들만 사용 가능
- <? super T> : T와 그 조상들만 가능
- <?> : 제한 없음
- 메서드 자체만으로도 제네릭을 만들 수 있다
오늘의 회고
- 오류와 예외처리 강의를 들었는데 아직 감이 잘 안 잡힌다
- 강의는 다 들었지만 숙제를 하려고 하니 지난 강의 숙제에서 연동을 해야 되는데 강의 내용과 숙제내용이 다르다 보니 어떻게 해야 되나 조금 더 고민해 봐야 될 듯
'TIL' 카테고리의 다른 글
내일배움캠프 3주차 프로세스와 쓰레드 (3) | 2024.05.01 |
---|---|
내일배움캠프 3주차 개인프로젝트 (0) | 2024.05.01 |
내일배움캠프 2주차 TIL + 상속, 추상클래, 인터페이스 등 (0) | 2024.04.26 |
내일배움캠프 2주차 TIL + 오버로딩, 인스턴스 멤버, 클래스 멤버 등 (1) | 2024.04.25 |
내일배움캠프 2주차 TIL + 연산자, 조건문, 반복, 배열, 컬렉션..... (0) | 2024.04.24 |