- 프로그램 오류 : 프로그램 수행 시 치명적 상황이 발생하여 비정상 종료 상황이 발생한 것 = 프로그램 에러
종류) 1. 컴파일 에러 : 프로그램의 실행을 막는 소스 상의 문법 에러.
소스 구문 수정하여 해결 가능
2. 런타임 에러 : 입력 값이 틀렸거나, 배열의 인덱스 범위를 벗어났거나, 계산식의 오류 등.
주로 if 문을 사용하여 에러 처리
3. 시스템 에러 : 컴퓨터 오작동으로 인한 에러. 소스 구문 수정으로 해결 불가
- 예외처리 : 소스 수정으로 해결 가능한 에러를 예외(Exception) 라고 하는데 이러한 예외 상황(예측 가능한 에러) 구문을 처리하는 방법. 모든 예외의 최고 조상은 Exception 클래스이다. 반드시 예외 처리해야 하는 Checked Exception 과 해주지 않아도 되는 Unchecked Exception 으로 나뉨
- 종류 : ArithmeticException : 0 으로 나누는 경우 발생. if문으로 나누는 수가 0인지 검사로 해결 ArrayIndexOutOfBoundsException : 배열의 index 범위를 넘어서 참조하는 경우. 배열명.length를 사용해 범위 확인하여 해결 NegativaArraySizeException : 배열 크기를 음수로 지정한 경우 발생. 크기를 0보다 크게 지정해야 함 ClassCastException : Cast연산자 사용시 타입오류. instanceof 연산자로 객체타입 확인 후 cast연산 NullPointerException : Null인 참조 변수로 객체 멤버 참조 시도 시 발생. 객체 사용 전, 참조변수가 null인지 확인 ( 여기 쓴 종류들은 RuntimeException 클래스 후손 클래스 종류 몇가지를 소개한 것 )
- 예외처리 방법
- throws : 일명 예외처리 미루기. 메서드 선언시 throws ExceptionName 문을 추가하여 호출한 상위 메서드에 처리 위임. 이게 반복되어 계속 위임하면 main()메서드까지 위임하게 되어 거기서도 처리되지 않으면 에러 뜸
- try ~ catch 문 : try 구문에 exception 발생할 가능성이 있는 코드를 안에 기술한다.
catch 구문에 위에 기술한 발생 가능성 있는 exception 에 대한 처리를 기술한다.
* finally 문이 있는 경우도 있는데 이는 예외 발생 여부와 관계없이 꼭 처리해야 하는 로직이 기술되 어 있다. 중간에 return 문을 만나도 finally 구문은 실행됨.
주로 java.io 나 java.sql 패키지의 메서드 처리 시 이용된다.
- 예외 강제 발생
'국비' 카테고리의 다른 글
11.1 국비학원 20일차 (컬렉션 : List, Set) (0) | 2022.11.02 |
---|---|
10.31 국비학원 19일차 (입출력 스트림) (0) | 2022.11.01 |
10.27 국비학원 17일차(StringBuilder,StringBuffer클래스, Wrapper클래스, 날짜 클래스) (0) | 2022.10.29 |
10.26 국비학원 16일차 (문자열String 클래스) (0) | 2022.10.28 |
10.25 국비학원 15일차 (다형성, 추상클래스, 인터페이스) (0) | 2022.10.26 |