티스토리 뷰
반응형
Error와 Exception
https://it-mesung.tistory.com/69?category=830540
Error와 Exception의 차이
Error(에러)
- 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용 프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을 경우 발생하는 것을 말한다.
Exception(예외)
- 개발자의 잘못된 코딩 혹은 API 접근 실패로 인해 발생하는 프로그램 오류를 말한다.
- 예외가 발생하면 프로그램이 종료 된다는 것은 에러와 동일하지만 예외는 예외처리를 통해 프로그램을 종료하지 않고 정상적으로 작동되게 만들 수 있다.
- Java에서는 해당 예외처리를 try/catch문을 통해 진행한다.
여러 Exception들을 살펴보자
NullPointException
-
객체 참조가 없는 상태로서, null 값을 갖는 참조 변수를 호출하려 할 때 발생하는 예외이다.
-
객체를 참조하고 있지 않은데, 객체를 사용하려 하여 발생하는 예외이다.
class MyClass { public String field = "test"; } MyClass myClass = null; myClass.field; //NullPointException 발생
ArrayIndexOutOfBoundsException
- 배열에서 인덱스 범위를 초과하여 사용할 경우 발생한다.
NumberFormatException
- 문자열로 되어있는 데이터를 숫자 타입으려 변경하는 경우가 있는데, 숫자 타입으로 변경할 수 없는 문자를 치환하려할 때 발생한다.
ClassCastException
- 타입 변환은 상위 클래스와 하위 클래스 간에 발생하고, 구현 클래스와 인터페이스 간에도 발생한다. 그러나 이런 관계가 아니면 타입 변환이 일어나지 않는데, 이 규칙을 무시하고 타입 변환을 진행시킬 시 해당 exception이 발생한다.
try/catch와 throw
try/catch
try{
//에러가 발생할 수 있는 코드 : API 접근 실패, 혹은 여러 Exception 발생
//Ex. 강제 에러 출력
throw new Exception();
}catch (Exception e){
//에러시 수행
e.printStackTrace(); //오류 출력
throw e; //최상위 클래스가 아니라면 무조건 던져주자
}finally{
//무조건 수행
}
throw
- 예외가 발생했을 때, 최상위 클래스가 아니라면 catch문에서 오류에 관련된 메시지를 출력하고나서 오류는 무조건 던져줘야 한다.
- 하지만 개인적인 생각에서는 무조건 던져줘서는 안된다.
- 이유는, 현재 애플리케이션을 유지보수하고 있는 환경이라면 정상적인 동작이 꾸준히 이루어져야하기 때문에 catch문에서 로그를 찍어주는 방식으로 처리하고, throw는 하지 않는 것이 좋다.
반응형
'Java > Java 기초' 카테고리의 다른 글
[Java 기초] 프록시 패턴 보충_Adapter Pattern vs Bridge Pattern (0) | 2020.04.19 |
---|---|
[Java 기초] Java의 Collection (0) | 2020.04.08 |
[Java 기초] 다이나믹 프록시 정리 (0) | 2020.03.30 |
[Java 기초] 클래스의 프록시 (0) | 2020.03.30 |
[Java 기초] static과 final의 조합 (2) | 2020.03.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- springboot
- Spring
- JPA
- 김영한
- ifPresent
- 빈 순환 참조
- 점층적 생성 패턴
- 정적팩터리메서드
- 스프링부트
- java8
- try with resources
- jdk버전
- @Lazy
- mustache
- package-private
- junit
- Effective Java
- 빌더 패턴
- 이펙티브 자바
- 인프런
- 복사 팩토리
- java
- effectivejava
- 이펙티브자바
- flatMap
- 생성자
- 연관관계
- 자바8
- 팩토리 메소드 패턴
- try catch finally
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함