본문 바로가기
IT/Java

try-catch 예외처리 비용

by 성준하이 2023. 10. 11.
반응형

try-catch에 대해서는 이전 포스팅에서 다룬적이있다.

자세한 내용은 참고 포스팅 참고 바란다.

 

try-catch 문법에 대해서는 남용해도 되는지 라는 질문을 이전에 본적이있어서 글로 남긴다.

 

실제로 try-catch는 필요한 구문이다.

예외처리를 정상적으로 처리하지 못한다면 thread가 즉시 종료 되버리기 때문에 적시적소에 맞는 try-catch문법은 필요하다.

 

사용시 유의점이 있다.

  1. 필요한 부분만, 어떤 Exception 이 발생할수 있을지 우려가 되는 부분에 적용 해야함
    코드 처음부터 끝까지 묶은다음에 try-catch(Exception e) 로 묶어버리면 매우 안좋은 코드가 된다.
  2. Exception 사용보단 정확하게 발생할수 있을만한 Exception 을 catch 에 넣어주는것이 좋다.
    아래 예시를 보자.
Long startTime1 = System.currentTimeMillis();
for(int i =0; i<1000000; i++) {
     try {
         throw new InterruptedException();
     }catch(InterruptedException e) {
     }
}
Long endTime1 = System.currentTimeMillis();

Long startTime2 = System.currentTimeMillis();
for(int i =0; i<1000000; i++) {
     try {
         throw new InterruptedException();
     }catch(Exception e) {
     }
}
Long endTime2 = System.currentTimeMillis();
System.out.println(endTime1-startTime1);     //522
System.out.println(endTime2-startTime2);    //447

발생할 Exception 을 찾는 비용이 소모되어 더 오래 걸린다.

 

그리고 가능하면 if else 등 조건으로 풀수 있으면 푸는게 더욱 좋다.

만약 nullpointException 을 try-catch로 묶는다면

if(object ==null) 이렇게 하여 사전에 잡아주는것을 추천한다.

 

실제로 try-catch문은 예외를 발생하는 지점을 찾고, 찾았다면 그 에러를 메서드 hierarchy 를 타고 들어갔다가 나왔다가 하여 결국 console에 뿌려지기까지에 많은 비용을 발생하므로 남용은 지연을 하며 필요한 부분에만 사용하는것이 좋다.


참고 포스팅

https://thenicesj.tistory.com/151

 

try - catch - finally 예외처리란?

프로그래밍에서 예외처리란 굉장히 중요한 부분이다. 서버가 잘 돌다가 죽을수도 있고 무한 대기, 홀딩 현상이 걸릴수도 있다. 일상생활에서의 예외처리를 잠깐 예를 들면. 외출을 해야하는 경

thenicesj.tistory.com

 

반응형

댓글