[Java - 기본 - (7) ] try catch 쓰는 이유 < 나는 null 처리를 위해 > : "NullPointerException"
보통은 예외때문에 오류처리를 해야할 경우가 대부분이다.
의미적으로 본다면 예외처리란 프로그램 실행 중 예기치 못한 상황이 발생했을 때 적절하게 조치를 취함으로써 프로그램이 수행하는 동작을 이상없이 진행하도록 하는 것이다.
우리가 개발한 프로그램이 사용자의 컴퓨터에서 실행되는 도중에는 오류가 발생해도 프로그램을 수정할 수 없기 때문에 프로그램 개발 시 미리 예외처리 코드를 작성하여 대비를 해야한다.
에러와 같이 치명적인 오류는 처리하고 싶어도 처리할 수 없는 경우가 거의 대부분이기 때문에 오류 처리가 무의미하지만 예외의 경우에는 적절한 처리를 해준다면 신뢰성 있는 프로그램을 만드는 데에 도움이 된다.
1
2
3
4
5
6
7
8
9
10
11
12
|
package test;
public class ExceptionTest {
public static void main(String[] args) {
String s = null;
boolean isHello = s.equals("hello");
System.out.println("s는 hello인가? " + isHello);
}
}
|
1
2
|
Exception in thread "main" java.lang.NullPointerException
at snippet.ExceptionTest.main(ExceptionTest.java:8)
|
예외처리방법 try - catch - finally문
자바에서는 예외가 발생할 경우 JVM에서는 발생 즉시 프로그램의 진행을 멈추고 해당 예외의 내용을 객체로 만들어 던지게(throw) 되며, 개발자는 던져진 예외를 try - catch 구문을 통해 잡아서 처리할 수 있다.
예외가 발생할 가능성이 있는 코드를 try{ } 구문으로 감싸주고 try{ } 구문에서 예외가 발생하여 던져진 예외객체를 catch{ } 구문을 통해 잡아서 처리하면 된다.
finally{ } 의 경우 생략 가능하며, 예외 발생 여부와 상관없이 무조건 실행.
입출력 처리시 입출력 자원을 사용 후 반납해주는 경우처럼 예외 여부와 관계 없이 최종적으로 꼭 실행되어야 하는 로직이 들어가게 된다.
'◽ Java language > Java' 카테고리의 다른 글
[Java] Static (0) | 2020.02.23 |
---|---|
[Java - (15) ] java.util.Timer, java.util.TimerTask : 스케줄러 사용하기 (0) | 2020.02.21 |
[Java - (14) ] StringUtils : 문자열 체크 ( StringUtils.isEmpty ) (0) | 2020.02.16 |
[Java - 기본 - (5) ] 용어 설명 Java SE, JDK, JRE (0) | 2019.12.16 |
[Java - 기본 - (4) ] 객체, 클래스(Class), 인스턴스 등 - 수정1 (0) | 2019.11.23 |
[Java - 기본 - (3) ] Integer와 int의 차이 (0) | 2019.10.02 |
[Java - (13) ] " == " VS " .equals() " (0) | 2019.08.26 |