。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

CS

Exception 예외

quarrrter 2024. 1. 23. 09:18

 

 

1. 일반 예외 : 컴파일 체크 예외, Checked Exception 자바 소스를 컴파일하는 과정에서 예외 처리 코드가 필요한지 검사하기 때문이다. 만약 예외처리 코드가 없다면 컴파일 오류가 발생하게 된다. 따라서 반드시 try-catch로 감싸거나 throws로 던져서 처리해야함.

 

[예외처리]

// try - catch
public static void file1() {
    try {
        FileWriter file = new FileWriter("data.txt");
    	file.write("Hello World");
    	file.close();
    } catch(IOException e) {
    	e.printStackTrace();
    }
}

 -------------------------------------------------------------------------

// throws
public static void file1() throws IOException {
    FileWriter file = new FileWriter("example.txt");
    file.write("Hello World");
    file.close();
}

 

2. 실행 예외 : Unchecked Exception / 컴파일하는 과정에서 예외 코드를 검사하지 않는 예외를 말한다. 컴파일 시 예외 처리를 확인하는 차이일 뿐, 두 가지 예외 모두 예외처리가 필요하다. RuntimeException을 상속 받는다. 

 

모든 예외 클래스는 java.lang.Exception 클래스를 상속받는다. 

 

 


Checked Exception

1. FileNotFoundException : 존재하지 않는 파일의 이름을 입력

2. ClassNotFoundException: 실수로 클래스의 이름을 잘못 기재

3. DataFormatException: 입력한 데이터 형식이 잘못된 경우 

4. IOException: 입출력을 다루는 메서드에 예외처리가 없으면 컴파일 에러 발생(print, println은 자체 컴파일 예외 有)

 

 

 

RuntimeException

1. NullPointException(NPE)

해당 객체가 null인 상태에서의 접근을 했을 때 해당 값이 null에 대한 접근을 하여 발생하는 에러로 객차게 없는 상태에서 객체를 사용하려 하였으나, 해당 객체는 없는 상태이기 때문에 발생하는 에러. 

 

2. ArrayIndexOutOFBoundException

배열에서 할당된 배열의 인덱스 범위를 초과해서 사용할 경우 발생하는 에러.

 

3. NumberFormatException

parseXXX() 메서드들을 이용하여 문자열을 숫자로 변환할 수 있지만 매개변수로 오는 문자열이 숫자로 변환이 되는 값이면 숫자를 리턴하지만, 숫자로 변환될 수 없는 문자가 파라미터면 발생하는 에러.

 

4. ClassCastException

타입변환(Casting)은 상위 클래스와 하위 클래스간에 발생하고 구현 클래스와 인터페이스 간에도 발생하는데 이러한 관계가 아닌데 억지로 타입변환을 시도할 경우 발생하는 에러. 

'CS' 카테고리의 다른 글

URL / URI  (0) 2024.01.26
[SQL] DDL, DML, DCL, TCL  (0) 2024.01.25
JRE, JDK 차이  (2) 2024.01.17
자바 면접 예상  (1) 2024.01.05
합병정렬  (0) 2023.12.30