예외(Exception)란?

자바에서 오동작이나 결과에 악영향을 미칠 수 있는 실행 중 발생한 오류를 예외라고한다. 문법에 맞지않게 작성된 코드는 사전에 컴파일러에 의해 컴파일 오류로 걸리지만 예외는 사용자의 잘못된 입력이나 배열의 인덱스가 배열의 크기를 넘어가는 등 예기치 못한 상황에 의해 프로그램 실행 중 발생한다.

˙정수를 0으로 나누는경우
˙ 배열의 크기보다 큰 인덱스로 배열의 원소를 접근하는 경우
˙ 존재하지 않는 파일을 읽으려고 하는 경우
˙ 정수 입력을 기다리는 코드가 실행되고 있을 때 사용자가 문자를 입력한 경우

 

ex) 예외 발생 사례

실제 예외가 발생하는 사례이다. 0으로 나누기를 실행할 때 예외가 발생하여 응용프로그램이 강제로 종료된다.

 

 

실행결과

나뉨수를 입력하시오:
100
나눗수를 입력하시오:
0
Exception in thread "main" java.lang.ArithmeticException: / by zero
                    at DividByZero.main(DividByZero.java:18)

 

예외처리, try-catch-finally문

예외처리란 개발자가 작성한 프로그램의 실행 중에 예외가 발생하면 이에 대응하는 것을 말한다. 자바는 예외처리를 위해 try-catch-finally문을 사용한다.

 

예외가 발생할 가능성이 잇는 실행문들을 try{ } 블록으로 묶고 예외처리 코드는 catch{ } 블록 내에 작성한다. catch() 문의 ()안에는 처리하고 하는 예외의 타입을 선언한다. finally{ } 블록은 생략해도 상관없으며 실제 많은 경우 생략한다. 

 

자바 예외 클래스

응용프로그램에선느 자바 플랫폼에서 제공하는 예외클래스를 이용하여 예외발생을 탐지할 수 있다. 아래는 자주 활용되는 예외 클래스이다.

 

ex) 0으로 나눌 때 발생하는 ArithmeticException 예외처리

 

 

실행결과

나뉨수를 입력하시오:
100
나눗수를 입력하시오:
0
0으로 나눌 수 없습니다! 다시 입력하세요.
나뉨수를 입력하시오:
100
나눗수를 입력하시오:
5
100를 5로 나누면 몫은20입니다.

 

'JAVA' 카테고리의 다른 글

[JAVA] 생성자와 this  (0) 2020.05.23
[JAVA] 객체와 클래스  (0) 2020.05.23
[JAVA] 배열  (0) 2020.05.22
[JAVA] 반복문  (0) 2020.05.22
[JAVA] 조건문  (0) 2020.05.22

+ Recent posts