티스토리 뷰
오류
시스템 레벨에서 발생하는 에러
개발자가 미리 예측 할 수 없는 오류이므로 어플리케이션 개발시 이에 대한 오류처리는 제외
- 하드웨어 오작동, 또는 고장으로 인한 응용프로그램 이상발생
- 시스템 레벨에서 에러 처리
예외
개발자가 구현한 로직에서 발생
예외는 개발자가 미리 예측이 가능함으로 어플리케이션에서 미리 처리
- 사용자의 잘못된 데이터 입력
- 잘못된 연산
- 개발자가 로직을 잘못 작성
- 시스템 과부하
Throwable, Exception, Error
CHECKED : ex) try, catch
UNCHECKED : 실행당시의 에러
- NullPointerException : 객체화가 되어있지 않음
- OutOfMemoryError : 메모리 부족.
Checked Exception
- 예외 처리가 필수적이며, 예외처리 하지 않을 시 컴파일 시 에러 발생
- IOException, SQLException 등
Unchecked Exception
- 컴파일시 체크 되지 않고 실행시 발생하는 에러
- RuntimeException 하위의 모든 예외
- NullPointerException, IndexOutOfBoundException 등
try ~ catch : 예외 잡기
-try : 예외 발생 가능성 있는 로직의 영역
-catch : 예외 발생시 처리 하는 영역
-finally : try ~ catch 영역 종료 후 실행되는 영역
throws : 예외 던지기
- 작성되는 메서드에서 예외 던지기
- 현재 메서드에서 예외처리를 하지 않고 해당 메서드 호출 하는 곳에서 예외 처리하도록 유도
throw : 예외 발생시키기
throws 가 포함된 메서드 내에 throw 키워드로 예외 발생
throw new Exception();
강제적으로 예외처리를 하도록 만드는 예외
(try, catch 구문) : checked exception
- 호출하는 메서드에 throws 키워드가 있다.
- 예외처리를 위임할 것인지 예외를 해당 로직에서 처리할것인지 결정할 수 있다.
- 예외 위임 : thorws 키워드를 메서드에 압입
- 예외 처리 : try,catch 구문 삽입
- 컴파일시 에러 발생 : 예외 위임이나 예외처리하지 않았을 경우 컴파일시 에러 발생
1) thorws 가 붙으면 : 예외처리를 위임한다.
2) try, catch 가 붙으면 : 해당 메서드에서 예외처리를 한다.
unchecked exception
- 실행시 발생하는 에러 (예외)
- RuntimeException
1. nullPointer 발생.
2. null 조건처리.
- 조건 처리시 null 조건 처리 및 확정적인 값이 앞에 오도록한다.
3. list 는 null.
list에 size 메서드를 호출하면 에러 발생한다.
코드 작성시 항상 null 체크 하도록한다.
1. printStackTrace();
메소드를 호출하면 메소드가 내부적으로 예외 결과를 화면에 출력한다.
2. 윗줄에서 예외 발생시 : try, catch 문이 실행되지 않는다.
3. exception 이 상위의 개념이다.
NullPointerException 상위에 Execption 이 위치하면 에러가 발생한다.
4. 인덱스의 길이가 5인데, 6에 "홍길동"을 대입하였다.
5. 예외가 중복으로 발생하면 상위의 코드만 예외처리한다.
1.
2.
3. Exception extends java.lang.Throwable
Exception은 Throwable 클래스를 상속받고 있으므로 해당 클래스는 예외처리가 가능하다.
4. Exception 혹은 Throwable 클래스를 상속받아 예외 클래스를 만들 수 있다.
슈퍼클래스들은 생성자메서드를 통하여 예외를 발생하도록 되어있으므로
직접 만든 클래스에서 생성자메서드를 생성하여 슈퍼클래스의 생성자메서드를 호출해야한다.
5.
6. e.getMessage() : 에러의 원인을 간단하게 출력.
7. finally
'41기 개발자과정' 카테고리의 다른 글
20211228 깃 (0) | 2021.12.28 |
---|---|
20211222 프로그램, 프로세스, 스레드 (0) | 2021.12.22 |
20211221 스프링부트 - cafe24 배포 오류확인 (0) | 2021.12.21 |
20211217 Object 클래스 (0) | 2021.12.17 |
20211217 Super, final (0) | 2021.12.17 |