728x90
1. 예외처리
1-1. 컴파일 오류
- 문법에 맞지 않게 작성된 코드
- 컴파일할 때 발견
1-2. 예외
- 오동작이나 결과에 악영향을 미칠 수 있는 실행 중 발생한 오류
- 정수를 0으로 나누느 경우
- 배열보다 큰 인덱스로 배열의 원소를 접근하는 경우
- 존재하지 않는 파일을 읽으려고 하는 경우
- 정수 입력을 기다리는 코드가 실행되고 있을 때 문자가 입력된 경우
- Checked Exception
- 반드시 명시적인 예외처리를 해야하는 예외
- 컴파일 시점에서 예외처리 체크
1-3. 자주 사용되는 예외
- NullPointerException : 널 객체를 참조했을 경우
- ArithmeticException : 정수를 0으로 나누었을 경우
- ClassCastException : 적절치 못하게 Class를 형 변환하는 경우
- IllialArgumentException : 메서드에 잘못도니 인자를 전달하는 경우
- ArrayStoreException : 배열의 타입에 맞지 않는 값을 저장하려는 경우
- ArrayIndexOutOfBoundsException : 배열을 참조하는 인덱스가 잘못된 경우
1-4. try - catch - finally
- 예외가 발생할 때 프로그램이 중단되지 않고 예외를 제거
- try : 예외발생을 인지할 영역
- catch : try에서 해당 예외 타입이 발생했을 때 실행 영역
- finally : 예외발생 유무와 상관 없이 실행될 영역
- 예외타입은 슈퍼클래스로 사용 가능
- RuntimeException
- Exception
그냥 Exception으로 적어도 괜찮지만 정확하게 명시해주는 것이 좋다
try {
String menu = null;
menu.substring(0,3);
System.out.println("메뉴가 입력되었습니다");
}catch(NullPointerException e){
System.out.print("메뉴가 입력되지 않았습니다");
}finally{
System.out.println("어서오세요")
}
1-5. throw, throws
- 예외 인스턴스를 만들어 예외를 발생시킴(일부러 발생시킴)
- Exception 타입으로 발생시킬시 컴파일 단계에서 예외가 처리되어야함
- 메소드에서 발생할 수 잇는 예외를 명시함
- Exception 타입 또는 이를 상속한 예외가 발생하면 반드시 throws를 사용하여 명시
class ExceptionSet{
public ExceptionSet(){}
void runThrows() throws Exception{
throw new Exception;
}
void runThrow(){
throw new RuntimeException;
}
}
반응형
'Java 개념' 카테고리의 다른 글
Collection-ArrayList (0) | 2023.08.22 |
---|---|
리스트 (0) | 2023.08.03 |
인터페이스 (0) | 2023.07.31 |
final, Enum(열거형) (0) | 2023.07.03 |
참조 (0) | 2023.07.03 |