프로그램 오류

 

 

컴파일에러 : 컴파일 할 때 에러 ( 구문체크, 번역, 최적화 시 발생되는 에러 ) 실행 전 에러 표시

 

런타임에러 : 실행 중 발생되는 에러

 

 

예외 클래스의 계층 구조

 

 

Exception 과 RuntimeException

 

 

 

예외 처리하기_try_catch문

 

 

 

일치되는 예외처리 있음

 

비정상 종료 : 일치되는 예외처리 없음 ( 실행 중 예외발생 )

 

정상 종료 : 일치되는 예외처리 2번째에 있음 

 

 

 

printStackTrace(), getMessage()

예외 발생 시 예외객체 생성 -> 맞는 예외 catch블록 찾음-> 찾으면 catch블록 참조변수와 예외객체 연결

해당 catch블록 예외객체 사용 가능 

 

printStackTrace() : 예외객체 안에 예외정보 

getMessage() : 예외객체 안에 메시지

 

 

 

멀티 catch 블럭

catch ( 부모 | 자식 참조변수)x : 컴파일러 에러 -> catch (부모 참조변수) o

부모만해도 사용 가능 하니까 ( 의미상 동일 ) 

 

 

 

예외발생시키기 (throw)

 

 

 

checked예외, unchecked예외

RuntimeException을 예외처리 필수로 했다면 모든 코드에 try_catch블록을 사용해야 한다.

그래서 프로그래머가 작성해야되는 RuntimeException은 예외처리를 선택

 

 

 

 

메서드에 예외 선언하기, finally

예외를 발생시키는 키워드 throw와 예외를 메서드에 선언할 때 쓰이는 throws를 잘 구별

둘 다 선언해도 되지만 정석은 필수처리 예외만 선언 ( 체크드예외 ) 

try-catch문이 모든 메서드에 없어서 예외를 떠 넘기다가 마지막에는 JVM기본예외처리기가 처리 함

결과를 보게 되면 예외가 발생한 당시 출력( 예외가 처리된게 아님 실제로 처리 될라면 try-catch문이 필요 )

 

 

 

 

 

 

finally 블럭

 

 

 

사용자정의예외 만들기

포인트는 조상 선택과 String 매개변수가 있는 생성자를 넣어주기 

 

 

 

예외 되던지기 ( 다시 던지기 )

양 쪽에서 분담처리 할 때 사용됨 

 

 

 

연결된 예외

initCause : 원인예외(A)를 (B)에 포함 시킴 

연결된 예외 : 어떤 예외를 다른 예외로 감싸는 거

 

세부적인 예외를 포괄적인 예외로 감쌀 때 사용 

변경 하는 이유는 try-catch문을 필수에서->선택으로 바꾸기 위해서

 

'Java' 카테고리의 다른 글

java.lang패키지와 유용한 클래스(Strung 클래스)  (0) 2023.05.16
내부클래스, 익명클래스  (0) 2023.03.30
객체지향 프로그래밍 II  (0) 2023.03.27
객체지향 프로그래밍 I  (0) 2023.03.15
배열  (0) 2023.03.08

+ Recent posts