- 프로그램 오류
컴파일에러: 컴파일 할 때 발생하는 에러 실행전
런타임에러: 실행 할 때 발생하는 에러 프로그램 종료
논리적에러: 작성 의도와 다르게 동작 종료 안됨
- 런타임에러
에러: 수습 불가 심각 오류
예외: 수습 가능 미약한 오류
정의: 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드 작성
목적: 프로그램의 비정상 종료를 막고 정상적 실행상태 유지
-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 |