자바의 정석 복습하기(예외처리)

bitna's study note·2022년 6월 5일
0

자바

목록 보기
103/119

6월 6일 복습하기

1.프로그램 오류
(1)컴파일 에러:컴파일 할때 발생하는 에러
컴파일은 구문을 체크하여 명령어를 기계어로 번역하기 때문에
번역시 발생하는 에러를 말함
(2)런타임 에러:실행할때 발생하는 에러
컴파일에서 체크 못 한 에러가 JVM이 실행할때 발생하는 에러
(3)논리적 에러:작성 의도와 다르게 작동

2.자바의 런타임 에러
(1)에러:프로그램 코드에 의해서 수습 될수 없는 심각한에러
예)out of memory error ->메모리부족으로 죽는 프로그램
(2)예외:프로그램 코드에 의해서 수습 될수 있는 다소 미약한 에러

3.예외처리의 목적
발생할 수 있는 예외발생에 대비한 코드를 작성하는것으로 프로그램 죽는걸 막고,정상적인 실행 상태를 유지하는것

4.try-catch문
try{예외가 발생할 가능성이 있는 문장}
catch(해당예외1){예외발생시 처리문장1}
catch(해당예외2){예외발생시 처리문장2}

예외가 발생하면 이를 처리할 catch블럭을 찾는다.
Exception은 모든예외의 최고 조상이므로 마지막에 위치한다.
젤 위에 두면 상세한 에러처리가 어렵 왜?Exception이 위에서 다 처리해버림

예외가 발생하면 예외 바로 밑에 실행문장이 있더라도
바로 catch블럭으로 가기때문임

예외발생후 비정상종료시 아래문장은 다 실행 안됨.

5.printStackTrace() , getMessage()
예외가 발생하면 예외객체가 생성되고 그안에 printStackTrace() , getMessage() 메서드가 있어서 사용 가능

printStackTrace():예외발생당시 호출스택에 있었던 메서드의 정보와 예외메세지를 화면에 출력한다.
getMessage():발생한 예외클래스의 인스턴스에 저장된 메세지를 얻을수 있다.

6.예외발생시키기
(1)연산자 new를 이용해서 발생시키려는 예외클래스의 객체를 만든다.
Exception e =new Exception();
(2)키워드 throws 를 이용하여 예외 발생
throws e;
(3)catch블럭 으로 잡음
catch(Exception e){예외처리문장}

7.예외선언하기(예외떠넘기기=알린다)
메서드()throws Exception1,Exception2...{
메서드 내용
}

8.finally 블럭
예외 발생여부와 관계없이 꼭 수행되어야 하는 코드를 넣는다.

9.사용자정의 예외 만들기
우리가 직접 예외 클래스를 만든다.
조상은 Exception(필수처리) 과 RuntimeException(선택처리) 중으로 선택후 안에 생성자 만들기

10.예외 되던지기
예외처리후 다시 예외발생시키기
호출한 메서드와 호출된 메서드 양쪽 모두에서 예외처리하도록 하기

11.연결된 예외
한예외가 다른 예외를 발생시킬 수 있다.
예외A가 예외B를 발생시키면 A는 B의 원인예외
예외안에 또다른 예외를 포함시키는것

여러예외를 하나로 묶어서 다룰때 사용
checked예외를 unchecked예외로 변경하려고 할때

profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보