<예외의 상속>
예외도 클래스로 자바 구현되어있음
ex) NumberFormatException, NullPointerException
Exception은 모든 예외 클래스의 최상위 클래스
<예외Exception 분류>
크게 두가지로 분류하며, 이외에도 다양한 subclass가 많이 있다
1)checked Exception
2)unchecked Exception
Checked Exception : 예외처리가 필수
Unchecked Exception : 예외처리 선택
Unchecked Exception의 조상 Runtime Exception
Checked Exception의 조상은 Exception
예외 처리할 필요가 없게 extends를 Runtime Exception로 변경
<예외처리 방법>
- throws
- try ~ catch
- finally
※ e.printStackTrace() : 발생한 에러에 대한 정보를 출력해주는 메소드
에러가 뭐 때문에 어디서 왜 났는지 알려줌
일반적으로 .printStackTrace() 많이씀
1) throws
예외를 위임
나를 호출한 메소드에게 예외를 던져주는 것
예외를 내가 처리하지 않고 넘겨주는 것
ex) close()가 close()를 선언한 곳에 예외를 던지는 것
호출한 곳 예 : sc.close();
2) try ~ catch
예외를 직접 처리한다
익셉션 오류가 뜨는건 처리하라고 받은 예외를 받기만하고 처리하지 않아서 나는 것
try : 익셉션이 발생할 수 있는 코드를 기술하는 부분. 예외없는 코드도 들어갈 수 있음
catch : 실제로 발생한 예외에 대해서 어떻게 처리할지 기술하는 부분
try
Exception이 발생할 수 있는 코드를 기술하는 부분
catch (예외종류 변수선언)
실제로 발생한 예외에 대해서 어떻게 처리할지 기술하는 부분
예시코드
ThrowsTest tt = new ThrowsTest();
try {
tt.methodA();
} catch (IOException e) { // (예외종류, 레퍼런스변수 선언 : e)
e.printStrackTrace();
} finally {
System.out.println("종료");
}
3) finally
예외(Exception) 발생 여부와 상관없이 무조건 실행되는 코드 작성
<사용자 정의 예외(Exception)>
자바에서 만들어놓은 클래스 말고
내가 만든 클래스(사용자 정의 클래스)처럼 내가 만든 예외를 사용자 정의 예외라고 부른다
예외를 상속 받는다
public class MyException extends Exception {
extends Exception
여기서 부모는 자바 안에 있는 Exception class
사용자 정의 예외 : 꼭 작성해야할 것들
1)기본생성자
2)스트링 하나만 받는 매개변수 생성자
※ 매개변수 있는 생성자가 있어야하는 이유 ※
에러 오른쪽에 에러에 대한 상세 설명(ex:곧 수업 끝나는 에러)을 넣어주기 위해서 String타입으로 매개변수 있는 생성자가 필요한 것
어떤 에러인지 알려주기 싫으면 매개변수 안넣어줘도 된다
'JAVA' 카테고리의 다른 글
[Java] 난수 생성 및 사용하기: Math.random() (0) | 2022.07.31 |
---|---|
[Java] 에러(Error)와 예외(Exception) : (feat.예외처리를 이해할려면 에러를 알아야한다) (0) | 2022.06.12 |
[Java] 이클립스 파일or폴더 아이콘 옆에 물음표 뜨는 이유 (0) | 2022.05.28 |
[Java] Servlet Mapping 방법 2가지 & Servlet Container (0) | 2022.05.01 |
[Java] jdk? open jdk? 차이와 설치 & 환경변수 (0) | 2022.01.07 |