-
Java | Exception 예외JAVA/JAVA 2020. 2. 5. 17:34
Exception 예외
자바 프로그램의 정상적인 실행을 방해하는 이벤트
자바에서 예외는 예외 이벤트와 그에 대한 정보를 담고 있는 객체임
예제
package j200205; public class ExceptionTest { public static void main(String[] args) { String greetings[] = { "객체형변환", "예외처리", "예외처리방법" }; int i = 0; while(i<4) { System.out.println(greetings[i]); i++; } /* 객체 형 변환 예외 처리 예외 처리 방법 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at j200205.ExceptionTest.main(ExceptionTest.java:9) */ } }
※ java.lang.ArrayIndexOutOfBoundsException: 3
greetings 배열에 index 3에 해당하는 요소가 없기 때문에 예외가 발생했다는 메세지※ at j200205.ExceptionTest.main(ExceptionTest.java:9)
ExceptionTest.java의 9번째 줄에 문제가 있다는 메세지
종류
- RuntimeException: 논리적인 예외, 문법적으로는 문제가 없지만 프로그램이 실행되지 않는 경우
- non-RuntimeException: 물리적인 예외, 문법에 맞지 않아서 발생하는 예외
RuntimeException에 해당하지 않는 예외들이 포함됨
ex) 오타 → 수정 → 컴파일
RuntimeException
Execption 클래스의 하위 클래스인 RuntimeException 클래스
자주 발생하는 예외
런타임 예외 설명 NullPointerException 객체를 생성하지 않고 메소드를 호출하는 경우 발생하는 예외 ArithmeticException 5/0 과 같이 수학적 계산 오류에서 발생하는 예외 ClassCastException 객체 형 변환에서 발생하는 예외 IndexOutOfBoundsException 배열 첨자(index)와 배열 요소 사이에서 발생하는 예외 NumberFormatException 숫자형 인자를 요구하는 매개변수에 숫자형이 아닌 인자가 주어진 경우 발생하는 예외
ex) "5" → 5, "a" → X
예외 처리 필수 유무에 따른 예외 종류
- Checked Exception: 반드시 예외 처리를 해야 하는 예외
- 입출력
- 네트워크
- DB 연동_JDBC
- UnChecked Exception: 예외처리를 하지 않아도 컴파일하는 데에 지장이 없는 예외
그러나 예외처리를 하는 것이 권장됨
IOException
Execption 클래스의 하위 클래스인 IOException 클래스
- non-RuntimeException 중에서 가장 많이 발생하는 예외 클래스
- Checked Exception 이므로 반드시 예외 처리를 해야 함
자바에서 예외란 어떤 것인지 대략적으로 살펴보았습니다.
런타임 예외의 경우 문법적인 실수가 아니기 때문에 자주 발생하는 예외에 대해서는 알아두면 좋을 것 같습니다.
또한 입출력, 네트워크, DB연동시 반드시 예외처리를 해야 한다는 점을 기억해야겠습니다.
'JAVA > JAVA' 카테고리의 다른 글
Java | 예외 처리 throws & throw (0) 2020.02.05 Java | 예외 처리 try~catch~finally (0) 2020.02.05 Java | Object Type Casting 객체 형 변환 & Instanceof (0) 2020.02.05 Java | Inner Class 내부 클래스 & Anonymous class 익명 클래스 (0) 2020.02.04 Java | String Method(2) & Character Method (0) 2020.02.03