예외처리
트라이캐치문
트라이문 : 예외가 일어날수도 있는 부분
캐치문 : 트라이문에서 오류(예외)가 난부분을 받아 이어 실행
캐치문안에서 하나씩 예외처리 종류별로 하나씩 다 처리해주어야 함(else if 느낌으로)
마지막에 Exception을 두어야 함
상위에 런타임익셉션이 있으면 언체크드 익셉션
런타임이 없으면 체크드익셉션
예외에는 메세지를 줄 수 있다
모든 예외의 최상위가 Throwable임 거기다 super를 사용하여 detailmessage 에 넘겨줌
그것으로 예외처리 문자 출력
예외를 직접 만들어 사용하는것도 가능하다
[ArrayException]
public static void main(String[] args) {
Integer[] nums = {1, 2, 3, 4, 5};
try {
throw new NullPointerException();
// for(int i = 0; i < 6; i++) {
// System.out.println(nums[i]);
// }
} catch (IndexOutOfBoundsException e) {
System.out.println("예외 처리함");
} catch (NullPointerException e) {
System.out.println("빈값 처리함");
} catch (Exception e) {
System.out.println("예상 못한 예외 처리함");
}
System.out.println("프로그램 정상 종료");
}
}
[ThrowException]
public class ThrowsException {
public static void printList(List<String> list, int size) throws IndexOutOfBoundsException {
for(int i = 0; i < size; i++) {
System.out.println("[" + i + "]" + list.get(i));
}
System.out.println();
}
public static void main(String[] args) {
String[] names = {"김수현", "이종현", "박성진", "김동민"};
try {
throw new ClassCastException();
// printList(Arrays.asList(names), 5);
} catch (IndexOutOfBoundsException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
System.out.println("무조건 실행");
}
System.out.println("프로그램 정상 종료");
}
}
[CustomException]
public class CustomErrorException extends RuntimeException {
public CustomErrorException() {
System.out.println("내가 만든 예외 생성");
}
public CustomErrorException(String message) {
super(message);
}
}
'백엔드개발자 준비하기' 카테고리의 다른 글
[백엔드개발자 준비하기] 데이터베이스 환경설정 및 사용방법 (0) | 2023.01.31 |
---|---|
[백엔드개발자 준비하기] 익명클래스 (0) | 2023.01.31 |
[백엔드개발자 준비하기] 어노테이션 (0) | 2023.01.31 |
[백엔드개발자 준비하기] JSON (0) | 2023.01.31 |
[백엔드개발자 준비하기] 컬렉션 (0) | 2023.01.31 |