반응형
try-catch에 대해서는 이전 포스팅에서 다룬적이있다.
자세한 내용은 참고 포스팅 참고 바란다.
try-catch 문법에 대해서는 남용해도 되는지 라는 질문을 이전에 본적이있어서 글로 남긴다.
실제로 try-catch는 필요한 구문이다.
예외처리를 정상적으로 처리하지 못한다면 thread가 즉시 종료 되버리기 때문에 적시적소에 맞는 try-catch문법은 필요하다.
사용시 유의점이 있다.
- 필요한 부분만, 어떤 Exception 이 발생할수 있을지 우려가 되는 부분에 적용 해야함
코드 처음부터 끝까지 묶은다음에 try-catch(Exception e) 로 묶어버리면 매우 안좋은 코드가 된다. - 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
반응형
'IT > Java' 카테고리의 다른 글
CountDownLatch (다른 쓰레드 대기) (61) | 2023.10.13 |
---|---|
ThreadLocal (동시성문제) 사용법 및 주의사항 (49) | 2023.10.12 |
Java에서 Thread (Runnable) (60) | 2023.10.10 |
[Eclipse] method 생성 시 자동 생성되는 주석 제거 방법 (62) | 2023.10.09 |
@Transient 어노테이션 (51) | 2023.10.02 |
댓글