-
[JAVA] 예외처리개발 강의 정리/JAVA 2021. 6. 28. 12:09
1. 오류의 종류
(1) 에러(Error)
:개발자가 처리할 수 없는 상황. 캐치는 가능하지만 개발자가 처리할 수는 없음.
(2) 예외(Exception)
: 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인한 오류
2. 예외의 종류**중요**
(1) Checked Exception(일반(컴파일 체크) 예외 )
:예외 처리 코드 없으면 컴파일 오류 발생
(2) Runtime Exception(실행 예외)
:예외 처리 코드를 생략하더라도 컴파일이 되는 예외
-경험상 처리하는 부분
3. 예외 클래스**중요**
^^^^^^소위 다이어그램이라고 부름 ^^^^^
패키지: java.lang 패키지. lang 패키지는 임포트 없이 사용 가능함.
상위 클래스: java.lang.Exception
java.lang.Exeption클래스 위에 Throwable 클래스가 있는데 이게 바로 최상위 클래스이다.
Throwable
|
-------------------------
| |
Exception Class Error Class*예외의 기본 성질은 던지는(throw) 것이다. 누구한테? => 메소드 호출자에게.
*Exception Class를 상속 받는 클래스는
Runtime Exception 클래스(이 클래스를 상속받는 클래스포함)를 제외하고 모두 Checked Exception 이다.*예외를 만났을때 tupe Hierarchy를 통해 어떤 예외 클래스를 상속 받고 있는지(Runtime인지 Checked인지) 확인!
4. RuntimeException
: 컴파일시 체크 못함.
1. NullPointerException
: 참조 변수안에 객체의 주소가 없는 상태로 참조변수를 사용했을 때 발생함.
public class NPExceptionExmaple { public static void main(String[] args) { String data =null; log.info(data.toString()); }//main }//end class
============================================
Exception in thread "main" java.lang.NullPointerException //예외 이름
at exam01Exception.NPExceptionExmaple.main(NPExceptionExmaple.java:11)//내가 만든 소스2.ArrayIndexOutOfBoundsException
: 배열에서 인덱스 범위를 초과하여 사용할 경우 발생함.
3.ClassCastException
: 상속관계에서 발생함. 다운캐스팅시에 부모타입으로 들어간 자식객체의 타입을 잘못 지정했을때 발생한다.
즉, 부모타입으로 들어간 자식객체의 타입을 정확히 모를때 발생하는것.
5. 예외처리 코드 (try-chatch-finally)
Checked Exception : 반드시 작성해야 컴파일 가능
Runtime Exception : 컴파일러가 체크하지 못하며 개발자 경험에 의해 작성.
try 블럭은 단 한번만(안 나올수도 있음) 나올수 있으며, Catch 블럭은 0개 이상나온다.
try{ 예외 발생 코드 } catch (예외 클래스 e){ 예외처리 }finally { 항상실행; }
try 블럭에는 예외가 발생할만한 소지가 있는 코드를 넣고
catch 블럭 안에는 예외 발생시 예외처리를 하는 코드를 넣는다.
finally 블럭은 예외가 발생하든 안 하든 항상 실행한다.
입문자 입장에서는 try 블럭에 무슨 코드를 넣을것인가 판단하는 것이 어렵다.
'개발 강의 정리 > JAVA' 카테고리의 다른 글
[JAVA] Generic (0) 2021.06.30 [JAVA] 예외처리 코드, 사용자 정의 예외 (0) 2021.06.29 [JAVA] 인터페이스 (0) 2021.06.24 [JAVA] 추상클래스, 익명자식객체생성, 클로져 (0) 2021.06.23 [JAVA] enum, extends, overriding (0) 2021.06.22