티스토리 뷰

 

 

 

                                         

                                          < 문법 >

 

블럭처리 하고 Alt + Shift + Z 단축키를 이용해서

-try - catch문은 에러를 잡는 문법으로 사용됩니다.

 

또한, try-catch문이 끝났다고 해서 모두 종료가 되는것이 아니라

catch문으로 오류를 잡고 중괄호를 빠져 나온 다음  구문을 실행한다. 따라서 마지막에 catch다음

추가로 print문이 있을 경우 출력하게되고 없을 경우 빠져나온다

ex)

public static void main(String[] args){

try {

    ~~~~ . ..  

     }catch(Exception e) {

         ~~~ 

    }

    System.out.print (" cath에서 종료 안하고 추가로 이쪽 구문 마지막으로 실행 " );

}

 

 

                                                           < 예외의 종류 >

 

 

ArithmeticException : 수학적인 오류

at  : 어디에서 발생했는지 알려줌

e.printstackTrace( ) : 예외상황이 일어난 곳을 추적해서 출력

e.getmessage() : string으로 어떤 오류가 발생했는지 알려준다.

e.toString() : 예외상황에 대한 자세한 정보

 

 

 

 

                                                       <    Why ??   >

                                        

-에러를 명시적으로 표시할 수 있다. (사용자 관점)

 -> 개발자의 입장에서 보았을 때 빨간글씨의 에러메세지로도 충분히 상황을 이해할 수 있습니다.

아니 오히려 그게 더 도움이 될 수도 있어요. 정확히 몇 번째 줄에서 에러가 났는지도 알려주니까요.

하지만 사용자 측면에서 본다면 위 예시처럼 "나누는 수를 0으로 해주세요"라는 명시적인 표현을 써주는게 더 좋다.

 

                                                      <    finally ??   >

 

finally

-> try나 catch의 실행문들이 마지막까지 다 실행됬으면

최종적으로 finally안에 있는 구문을 실행해라 라는 뜻입니다.

 

그렇다면 이 finally구문은 도대체 어떤상황에 써먹어야 하는 걸까요?

예를 들면 이러한 상황에서 사용할 수 있습니다.

try에서 메모리를 할당 받았다면, 오류가 났건 나지 않았건 그 공간은 결국에 다시 반납을 해줘야 하는것이 맞거든요.

 

이렇게 실행결과와 상관없이 항상 수행해야 하는 작업 혹은

예기치못한 상황이 생기면 뒷정리를 해주는 작업을 finally에서 보통 작성을 해준답니다.

 

            

                                                           <    Why ??   >

굳이 finally를 안쓰고 try~catch 밖에다가 일반 실행문처럼 쓰면되는거 아닌가...?

 

 

-> 단순히 if문으로 예외처리를 해버리면, 내가 먼 훗날 내 코드를 다시보았을 때 혹은 다른 개발자가 내 코드를 봤을 때

이게 로직을 위한 조건식인지 아니면 예외처리인지 알기가 힘들다는 겁니다.

 

'Java' 카테고리의 다른 글

JAVA- toString()  (0) 2019.09.28
JAVA - Object  (0) 2019.09.28
인터페이스(interface)와 다형성 왜 사용하는가 ?  (0) 2019.09.15
클래스의 접근 제어자  (0) 2019.09.15
자바 final  (0) 2019.09.15