ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 08 (1) 예외 클래스의 계층구조
    Java 2023. 5. 9. 14:45
    반응형

    프로그램 오류

    - 컴파일 에러: 컴파일 할 때 발생하는 에러

    - 런타임 에러 : 실행 할 때 발생하는 에러

    - 논리적 에러 : 작성 의도와 다르게 동작

     

    -java의 런타임 에러

    에러(error) 프로그램 코드에 의해서 수습될 수 없는 심각한 오류

    예외(exception) 프로그램 코드에 수습될 수 있는 다소 미약한 오류

     

    - 예외처리의 정의와 목적

    예외처리(exception handling)

    정의 - 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것

    목적 - 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것

     

    상속계층도

     

     

    예외 처리학기. try-catch

    예외처리(exception handling)

    - 정의 : 프로그램 실행시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것

    - 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것

     

     

    try - catch문에서의 흐름

    1. try블럭 내에서 발생한 경우

    (1) 발생한 예외와 일치하는 catch블럭이 있는지 확인한다.

    (2) 일치하는 catch블럭을 찾게 되면, catch블럭 내의 문장들을 수행하고 전체

    try-catch문을 빠져나가서 그 다음 문장을 계속해서 수행한다.

    만일 일치하는 catch블럭을 찾지 못하면, 예외는 처리되지 못 한다.

    (3) try블럭 내에서 , 2문장 중에 하나라도 예외가 발생할 경우,

    2문장을 실행하지 않고 catch블럭으로 수행하게 된다

     

    2. try블럭 내에서 예외가 발생하지 않은 경우

    (1) catch블럭을 거치지 않고 전체 try-catch문을 빠져나가서 수행을 계속한다.

     

     

    printStackTrace( )getMessage( )

    - printStackTrace( ) : 예외발생 당시의 호출스택(call Stack)에 있었던 메서드의 정보와

    예외 메시지를 화면에 출력한다.

     

    - getMessage( ) : 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.

     

     

    멀티 catch블럭

    - 내용이 같은 catch블럭을 하나로 합친 것(JDK 1.7부터)

    주의

    - 멀티 catch블럭에 쓰이는 클래스가 부모 자식 관계(X)

    >> 부모 타입의 catch 블록으로 잡을 수 있다

     

     

    예외 발생시키기

    1. 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든 다음

    Exception e = new Exception("고의로 발생시켰음“);

    2. 키워드 throw를 이용해서 예외를 발생시킨다.

    throw e;

     

     

    checked예외, unchecked예외

    - checked 예외 : 컴파일러가 예외 처리 여부를 체크(예외 처리 필수)

    - unchecked 예외 : 컴파일러가 예외 처리 여부를 체크 안함(예외 처리 선택)

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    출처 : 남궁성의 정석코딩 - YouTube

     

    남궁성의 정석코딩

    자바의 정석 동영상 강의 채널입니다.(by 저자 남궁성)

    www.youtube.com

     

    반응형

    'Java' 카테고리의 다른 글

    09 (1) hashCode( ) toString( )  (0) 2023.05.10
    08 (2) 예외선언하기  (0) 2023.05.10
    07 (9) 익명클래스  (0) 2023.05.09
    07 (8) 디폴트 메서드와 static메서드  (0) 2023.05.08
    07 (7) 인터페이스  (0) 2023.05.08
Designed by Tistory.