예외처리에 대해 예제를 살펴보자.
계산기 소스
public class CalculatorExceptionClass { int left, right; public void setOprands(int left, int right){ this.left = left; this.right = right; } public void divide(){ if(this.right == 0){ throw new ArithmeticException("0으로 나누는 것은 허용되지 않습니다."); } try { System.out.print("계산결과는 "); System.out.print(this.left/this.right); System.out.print(" 입니다."); } catch(Exception e){ System.out.println("\n\ne.getMessage()\n"+e.getMessage()); System.out.println("\n\ne.toString()\n"+e.toString()); System.out.println("\n\ne.printStackTrace()"); e.printStackTrace(); } } } | cs |
public class ExceptionClass { public static void main(String[] args) { CalculatorExceptionClass c1 = new CalculatorExceptionClass(); c1.setOprands(10, 0); try{ c1.divide(); } catch (ArithmeticException e){ System.out.println(e.getMessage()); } } } | cs |
- 계산기 소스에 right의 값이 0이 입력이 들어올 때 throw new ArithmeticException을 정의해주고 있다.
- 만약에 right의 값이 0이 들어 올 경우 throw new ArithmeticException 구문을 실행 및 끝이 나고 main클래스로 돌아와 catch문의 Exception과 같은 데이터 타입을 가진 ArithmeticException을 찾아 e라는 변수에 넣어준다.
실행결과
0으로 나누는 것은 허용되지 않습니다. | cs |