◽ Java language/Java
[Java - 기본 - (7) ] try catch 쓰는 이유 < 나는 null 처리를 위해 > : "NullPointerException"
kkk20000a
2020. 2. 14. 16:48
보통은 예외때문에 오류처리를 해야할 경우가 대부분이다.
의미적으로 본다면 예외처리란 프로그램 실행 중 예기치 못한 상황이 발생했을 때 적절하게 조치를 취함으로써 프로그램이 수행하는 동작을 이상없이 진행하도록 하는 것이다.
우리가 개발한 프로그램이 사용자의 컴퓨터에서 실행되는 도중에는 오류가 발생해도 프로그램을 수정할 수 없기 때문에 프로그램 개발 시 미리 예외처리 코드를 작성하여 대비를 해야한다.
에러와 같이 치명적인 오류는 처리하고 싶어도 처리할 수 없는 경우가 거의 대부분이기 때문에 오류 처리가 무의미하지만 예외의 경우에는 적절한 처리를 해준다면 신뢰성 있는 프로그램을 만드는 데에 도움이 된다.
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{ } 의 경우 생략 가능하며, 예외 발생 여부와 상관없이 무조건 실행.
입출력 처리시 입출력 자원을 사용 후 반납해주는 경우처럼 예외 여부와 관계 없이 최종적으로 꼭 실행되어야 하는 로직이 들어가게 된다.