코딩/Java

자바 예외

위의 코드를 실행 시키면 오류가 뜬다 10을 0으로 나누면 의미가 없어서 자바에서는 에러를 뜨게 한다.

 

에러 결과

at 위쪽에 있을 수록 오류의 진원지이다. 아래에 있을 수록 가장 사용자 쪽에 인접해 있는 것

 

에러가 발생시킬 수 있다고 예측되는 경우 try{ }로 넣는다. 에러가 발생되면 catch로 간다
try { 
   예외의 발생이 예상되는 로직
} catch (예외클래스 인스턴스) {
   예외가 발생했을 때 실행되는 로직
}

 

그 다음은 뒷수습이다.

 

위의 코드 처럼 아래쪽으로 갈 수록 에러에 대해 정보를 더 많이 제공한다.

e.getMessage();

오류에 대한 기본적인 내용을 출력해준다. 상세하지 않다.

e.toString()

e.toString()을 호출한 결과는 java.lang.ArithmeticException: / by zero 이다. e.toString()은 e.getMessage()보다 더 자세한 예외 정보를 제공한다. java.lang.ArithmeticException은 발생한 예외가 어떤 예외에 해당하는지에 대한 정보라고 지금을 생각하자. ArithmeticException 수학적인 계산의 과정에서 발생하는 예외상황을 의미한다. (우리는 어떤 숫자를 0으로 나누려고 하고 있다는 것을 상기하자)

e.printStackTrace()

메소드 getMessage, toString과는 다르게 printStackTrace는 리턴값이 없다. 이 메소드를 호출하면 메소드가 내부적으로 예외 결과를 화면에 출력한다. printStackTrace는 가장 자세한 예외 정보를 제공한다.

 

catch가 끝나고 나서 실행되게 그 다음에

divide end라고 출력해보면

 

출력이 된다. 이를 통해 알 수 있는 점이 try 내에서 에러가 발생했을 때 catch까지만 하고 끝나는게 아닌 순서대로 아래의 기능을 수행한다는 점을 알 수 있다.

'코딩 > Java' 카테고리의 다른 글

자바 finally  (0) 2020.12.30
자바 예외 다중캐치  (0) 2020.12.29
자바 인터페이스와 다형성  (0) 2020.12.26
자바 클래스와 다형성  (0) 2020.12.26
자바 다형성  (0) 2020.12.26