프로그래밍 언어/JAVA

[JAVA] 예외와 예외 클래스

김곰댕 2021. 7. 22. 16:26
728x90

오류의 종류

에러(Error)

- 하드웨어의 오동작 또는 고장으로 인한 오류

- 에러가 발생되면 프로그램 종료

- 정상 실행 상태로 돌아갈 수 없음

예외(Exception)

- 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인한 오류

- 예외가 발생되면 프로그램 종료

- 예외 처리를 추가하면 정상 실행 상태로 돌아갈 수 있음

 

예외의 종류

일반(컴파일 체크) 예외(Exception)

- 예외 처리 코드가 없다면 컴파일이 되지 않는 예외

실행 예외(RuntimeException)

- 예외 처리 코드를 생략하더라도 컴파일이 되는 예외

- 경험에 따라 예외 처리 코드를 작성할 필요

- 컴파일러가 컴파일시에 체크하는것이 아닌 실행하다가 발생할 수 있는 예외

 

실행 예외(RuntimeExcetion)

- NullPointerException

객체 참조가 없는 상태, 즉 null값을 갖는 참조변수로 객체 접근 연산자인 도트(.)를 사용했을 때 발생

String data = null;
System.out.println(data.toString()); //NullPointerException 발생

- ArrayIndexOutOfBoundsException

배열에서 인덱스 범위를 초과하여 사용할 경우 발생

public static void main(String[] args)
{
       String data1 = args[0];
       String data2 = args[1]; //ArrayIndexOutOfBoundsException 발생

       System.out.println("args[0]:" + data1);
       System.out.println("args[1]:" + data2);
}

- NumberFormatException

문자열을 숫자로 변환하는 경우가 많다.

숫자로 변환될 수 없는 문자가 포함되어 있을 경우 발생

String data1 = "100";
String data2 = "a100";

int value1 = Integer.parseInt(data1);
int value2 = Integer.parseInt(data2); //NumberFormatException 발생 (a때문에)

- ClassCastException

타입 변환이 되지 않을 경우 발생

상속 관계                                                                                 구현관계

정상 코드

예외 발생 코드

 

728x90