프로그램 오류 : 프로그램 수행 시 치명적 상황이 발생하여
비정상 종료 상황이 발생한 것, 프로그램 에러라고도 한다.
컴파일 에러 : 프로그램의 실행을 막는 소스 상의 문법 에러, 소스 구문을
수정하여 해결
런타임 에러 : 입력 값이 틀렸거나 배열의 인덱스 범위를 벗어났거나
계산식의 오류 등
. 시스템 에러 : 컴퓨터 오작동으로 인한 에러, 소스 구문으로 해결 불가
예외처리(Exception)
Unchecked Exception으로 주로 프로그래머의 부주의로 인한 오류인 경우가 많기 때문에
예외 처리보다는 코드를 수정해야 하는 경우가 많음
RuntimeException 후손 클래스
ArithmeticException :
0으로 나누는 경우 발생 if문으로 나누는 수가 0인지 검사
NullPointerException :
Null인 참조 변수로 객체 멤버 참조 시도 시
발생 객체 사용 전에 참조 변수가 null인지 확인
NegativeArraySizeException
배열 크기를 음수로 지정한 경우 발생
배열 크기를 0보다 크게 지정해야 함
ArrayIndexOutOfBoundsException
배열의 index범위를 넘어서 참조하는 경우
배열명.length를 사용하여 배열의 범위 확인
배열명.length를 사용하여 배열의 범위 확인
Cast연산자 사용 시 타입 오류
instanceof연산자로 객체타입 확인 후 cast연산
예외처리 방법 :
try~catch문을 이용하여 예외처리
try : exception 발생할 가능성이 있는 코드를 안에 기술
catch : try 구문에서 exception 발생 시
해당하는 exception에 대한
처리 기술 여러 개의 exception처리가 가능하나 exception간의 상속 관계 고려
finally : exception 발생 여부와 관계없이 꼭 처리해야 하는 로직 기술
중간에 return문을 만나도 finally구문은 실행되지만
System.exit();를 만나면 무조건 프로그램 종료
주로 java.io나 java.sql 패키지의 메소드 처리 시 이용
Exception 처리를 호출한 메소드에게 위임
메소드 선언 시
throws ExceptionName문을 추가하여 호출한 상위 메소드에게 처리 위임
계속 위임하면 main()메소드까지 위임하게 되고 거기서도 처리되지 않는 경우 비정상 종료
예외 상황을 알리기 위한 클래스
ArithmeticException
수학 연산에서의 오류 상황을 의미하는 예외 클래스
InputMismatchException
클래스 Scanner를 통한 값의 입력에서의 오류 상황을 의미하는 예외 클래스
try { ...관찰 영역... }
catch(ArithmeticException e) { ...처리 영역... }
'Java' 카테고리의 다른 글
자바 MVC 패턴 문제 객체 배열을 적용해서 풀이하기 (0) | 2024.07.01 |
---|---|
KH 교육과정_다형성 (0) | 2024.06.30 |
Java 인터페이스 정의 인터페이스를 이용한 실습 예제_2 (0) | 2024.06.28 |
Java 인터페이스 정의 인터페이스를 이용한 실습 예제_1 (0) | 2024.06.27 |
KH 교육과정 6월 25일 상속 내용 정리 (0) | 2024.06.26 |