예외(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 |