1. 예외
프로그램이 실행되는 동안에 발생하는 예기치 않은 에러
2. 컴파일 에러와 런타임 에러
1) Compile time Error
컴파일할 때 발생하는 에러
2) Run time Error
실행할 때 발생하는 에러
3. Java의 런타임 에러
1) 에러(error)
프로그램 코드에 의해서 수습될 수 없는 심각한 오류
2) 예외(exception)
프로그램 코드에 의해서 수습될 수 있는 미약한 오류
3) 예외처리
- 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 (강제 종료 대신 의도된 종료 가능)
- 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지
4. 예외 처리 - 예외 클래스
1) Throwable 클래스
자바에서 에러와 예외 사항을 모두 나타내기 위한 최상위 클래스
5. 예외 처리 - 예외가 발생하는 예제
1) 문제
String 변수 ans에 "y"가 들어있는 경우 "OK"를 출력, "n"이 들어있는 경우 "good" 을 출력, 그 외의 경우는 "다시 입력하세요"를 출력하라.
2) try-catch 와 Exception 클래스
컴파일러는 try 구문에서 예외가 발생하는지 검사하여 예외가 발생하게 되면 실행을 멈추고 catch 구문의 예외를 처리하기 위한 문장들을 수행한다.
3) 풀이
4) 다른 예외 처리 예제 - ArrayIndexOutOfBoundException
배열 범위를 벗어나는 index를 참조하려고 하면 위의 에러가 발생한다
4-1) 예외 처리
5) 다른 예외 처리 예제 - ClassCastException
Dog 클래스와 관련이 없는 Cat 클래스 인스턴스를 Dog로 casting 하려고 한다면 밑의 에러가 발생한다
위 코드의 예외 처리는 changDog에서 할 수도 있고 main에서 메서드 호출 부분에서 예외 처리를 할 수도 있다
5-1) 예외 처리
6) 예외 처리 - 한번에 묶어서 처리
한번에 여러 예외를 발생 시켜 이 예외들을 한번에 묶어서 처리하는 실습이다
6-1) 예외 처리
코드에서 발생할 수 있는 여러 예외 처리를 catch를 이용하여 작성하였다
밑의 예외 처리들이 모두 작동하는 것은 아니고 한 가지 예외처리가 발생하면 try의 실행은 중단된다
6-2) 예외 처리 - 하나의 catch문 작성 (Exception)
예외 처리 객체를 출력해주면 어떤 예외가 발생했는지 아래와 같이 확인할 수 있다
6. 예외 처리 - finally ( 무조건 실행되는 코드 )
finally 를 통해 작성한 코드는 예외가 발생하든 안하든 무조건 실행된다
예외 처리의 목표는 프로그램의 의도치 않은 중단 방지이다
'Java > 공부' 카테고리의 다른 글
자바 스트림 만들기 (0) | 2024.12.09 |
---|---|
자바 스트림(Stream), 스트림의 특징 (0) | 2024.12.09 |
0. Wrapper 클래스 (0) | 2024.03.13 |
0. Class.class (0) | 2024.03.13 |
0. hashCode() (0) | 2024.03.13 |