티스토리 뷰
에러(Error)와 예외(Exception)
우리는 보통 하드웨어의 오동작, 고장으로 인해 실행 오류가 발생 할때, 에러(error)가 났다고 표현한다.
개발자는 이러한 에러에 대처할 방법이 전혀 없다.
그러므로 우리는 에러와 예외를 잘 구분해야만 한다.
예외란 사용자의 잘못된 조작 및 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류이다.
예외가 발생되면, 에러와 동일하게 프로그램은 공 종료된다.
하지만, 예외는 예외처리를 통하여 프로그램이 비정상적인 종료가 아닌, 정상적인 실행이 가능하게 만들 수 있다.
예외는 두 종류가 있다.
일반 예외(Exception)과 실행 예외(Runtime Exception)이다.
1. 일반 예외 (Exception)
일반 예외는 컴파일러 체크 예외라고도 불리운다.
자바 소스를 컴파일하는 과정에서 예외 코드가 필요한지 검사하기 때문이다.
만약, 예외처리 코드가 없다면 컴파일 오류가 발생한다.
예를 들어, 존재하지 않는 파일 이름을 입력한 경우, 클래스 이름이 잘못 입력된 경우, 입력한 데이터 형식이 잘못된 경우 등이 있다.
2. 실행 예외 (Runtime Exception)
실행 예외란, 컴파일하는 과정에서 예외 처리 코드를 검사하지 않는 예외이다.
빈번하게 일어나는 실행예외 몇가지에 대해서만 이야기 하겠다.
1) NullPointException
NullPointException은 객체 잠초가 없는 상태, 즉 null 값을 갖는 참조 변수로 객체 접근 연산자인 도트( . ) 를 사용했을 때 발생한다.
예를들어,
String data = null;
System.out.println(data.toString());
하는 경우, null값을 가지는 data를 사용하여 toString을 호출하려고 했기 때문에 NullPointException오류가 발생한다.
2) ArrayIndexOutBoundsException
ArrayIndexOutBoundsException은 배열 인덱스 초과 예외이다.
int형 배열 array[3] 을 만들었다고 하자.
그런데, 4번째 값을 출력하려고 하면, 어떻게 될까?
그때 마주치는 예외가 ArrayIndexOutBoundsException 예외이다.
int array[] = new int[3];
System.out.println(array[4]);
3) NumberFormatException
NumberFormatException은 parseInt, parseDouble과 같은 메소드들을 잘못 사용할 때, 많이 일어난다.
String str1 = "1000";
String str2 = "a1000";
System.out.println(Integer.parseInt(str1));
System.out.println(Integer.parseInt(str2));
4) ClassCastException
ClassCastException은 억지로 타입변환을 시도할 경우 ClassCastException 예외가 발생한다.
'JAVA' 카테고리의 다른 글
[java/DB] java에서 DB 데이터 읽어오기 (0) | 2019.10.07 |
---|---|
예외처리 (0) | 2019.09.25 |
ArrayList와 Iterator를 이용한 성적관리 프로그램 (0) | 2019.09.24 |
인터페이스의 타입변환 및 상속 (0) | 2019.09.23 |
익명구현객체(Anonymous class) (0) | 2019.09.23 |