본문 바로가기
JAVA

[JAVA] #11. 예외처리

by san.d 2020. 11. 17.

error : 프로그램 코드에 의해 해결되기 힘든 심각한 오류

exception : 코드에 의해 수습가능한 미약한 오류

 

# throw 예외를 고의로 발생시킴

이걸 썼으면 꼭 try catch문을 쓰거나 메서드에 throws를 붙여서 예외처리하도록 해야 함

 

<<<예외의 종류>>>

RuntimeException : 프로그래머의 실수로 발생하는 예외 > try catch 필수

Exception : 사용자의 실수 등 외적요인에 의햄 > try catch 선택

 

<<<throwsssss>>>

+ 호출한 메서드로 예외를 전달

+ 호출한 메서드에서 처리하도록 할떄 사용

//그니까 만약에 내가 어떤 메서드 sum을 정의 할 때 헤드에 throws nullException라고 붙였어 그러면 만약에

다른 메서드 (main) 에서 sum을 호출해서 쓰는데 sum 진행중에 sum안에서 예외(> nullException )가 생겼어. 그럼 이거에 대한 try catchmain에서 정의했어야 한다는 뜻 만약에 그렇지 않으면(try catchmain에서 선언 안했으면) 바로 프로그램 종료됨

 

<<사용자 정의 예외 만들기>>>

+ 기존의 예외클래스를 상속받아서 새로운 예외 클래스를 정의

 

<<다중 throwscatch >>>

try블록은 다스의 서로 다른 예외를 발생시킬 수 있음 / catch 블록은 한 가지 종류의 예외만을 처리할 수 있음

/////////////catch블럭은 순서가 중요한데 더 자세한 catch 블럭 먼저 나와야 함

더 자세한 catch 블록 = 하위 클래스 예외

 

상위 예외 클래스가 하위 예외 클래스보다 아래쪽에 위치해야 한다는 것입니다.

try 블록에서 예외가 발생했을 때, 예외를 처리해줄 catch 블록은 위에서부터 차례대로 검색됩니다. 만약 상위 예외 클래스의 catch 블록이 위에 있다면, 하위 예외 클래스의 catch 블록은 실행되지 않습니다. 하위 예외는 상위 예외를 상속했기 떄문에 상위 예외타입도 되기 때문입니다.

 

ex)catch(ArrayIndexOutOfBoundsException e) {

System.out.println("실행 매개값의 수가 부족합니다.");

} catch(Exception e) { //Exception 이 위에 있으면 안된다.

System.out.println("실행에 문제가 있습니다.");

 

 

 

 

 

 

 

 

 

'JAVA' 카테고리의 다른 글

클래스와 객체  (1) 2022.12.29
[JAVA] #10. 제어자 + 추상클래스 + 인터페이스  (0) 2020.11.17
[JAVA] # 09. 상속  (0) 2020.11.12
[JAVA] # 08. 클래스와 객체  (0) 2020.11.11
[JAVA] # 07. 배열  (0) 2020.11.05

댓글