본문 바로가기
JAVA

예외처리

by moonstal 2022. 3. 7.

- 프로그램 오류

  컴파일에러: 컴파일 할 때 발생하는 에러 실행전

  런타임에러: 실행 할 때 발생하는 에러 프로그램 종료

  논리적에러: 작성 의도와 다르게 동작 종료 안됨 

 

- 런타임에러

  에러: 수습 불가 심각 오류

  예외: 수습 가능 미약한 오류

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

    목적: 프로그램의 비정상 종료를 막고 정상적 실행상태 유지

 

-Exception클래스: 사용자의 실수와 같은 외적요인 I/O, classnotfound

-RuntimeException클래스: 프로그래머의 실수로 발생하는 예외 arithmetic, classcast, nullpointer, indexoutofbounds

- try{

   }catch(Exception e){

   }

- Exception가장 마지막에 넣기

 

-pintStackTrace() 예외발생 당시의 호출스택에 있었던 메서드 정보와 예외메시지를 화면에 출력

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

- Exception e =new Exception("고의로 발생"); 에러메세지

  throw e; 예외 던져

 

- checke예외: 컴파일러가 예외처리여부를 체크(예외처리 필수) Exception과 자손

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

 

- 메서드에 예외선언

  void method() throws 예외, 예외2{}

  void method() throws Exception{}

  오버라이딩: 선언부일치, 접근제어자 좁게 안됨, 조상보다 많은 예외 선언 안됨

 

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

 

- 사용자 정의 예외

  직접 예외 클래스 정의

  조상은 Exception RuntimeException 중 선택

 

- 예외 되던지기

  예외를 처리한 후에 다시 예외를 발생시키는 것

  호출한 메서드와 호출된 메서드 양쪽 모두에서 예외처리하는 것

 

- 연결된 예외

  한 예외가 다른 예외를 발생시킬 수 있다.

  이유: 여러 예외를 하나로 묶어서 다루기 위해, checked예외를 unchecked예외로 변경하려 할 때

  

'JAVA' 카테고리의 다른 글

날짜와 시간 & 형식화  (0) 2022.03.08
java.lang패키지와 유용한 클래스  (0) 2022.03.08
객체지향 프로그래밍2  (0) 2022.03.06
객체지향 프로그래밍  (0) 2022.03.05
배열  (0) 2022.03.04