JAVA
JAVA - try catch finally 문법 사용하기 ( 예외처리 )
Cong_S
2022. 7. 7. 10:07
프로그램을 만들다 보면 수없이 많은 오류가 발생한다.
동작을 하지 않기 하기 위한 자바의 배려이다. 하지만 때로는 이러한 오류를 무시하고 싶을 때도 있고, 오류가 날 때 그에 맞는 적절한 처리를 하고 싶을 때도 있다. 이에 자바는 try ... catch, throw 구문을 이용해 오류를 처리 한다.
import java.util.ArrayList;
public class TryMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = {15, 2, 6};
// 배열의 인덱스가 범위를 벗어나 ArrayIndexOutOfBoundsException 오류가 발생
// 잘못된 오류가 발생해도 개발자가 원하는대로 오류 처리를 할 수 있게 해주자.
// try catch finally 문법 : 예외를 처리하는 방법
// try {
//
// for(int i = 0; i < 4; i++) {
// System.out.println( arr[i] );
// }
// } catch (Exception e ) {
// System.out.println("예외 발생! " + e.toString());
// }
// 예외처리 문장
try {
// 1. 첫 번째 오류 (범위 오류)
for(int i = 0; i < 3; i++) {
System.out.println( arr[i] );
}
// 2. 두 번째 오류 (0으로 정수를 나눌 수 없는 연산 오류)
int k = 4 / 0 ;
// 3. 세 번째 오류 (add 할 수 있는 영역이 없는(null) 오류)
ArrayList<String> myList = null;
myList.add("안녕?");
// 예외처리 문장
} catch(ArrayIndexOutOfBoundsException e) {
System.out.println( "배열 인덱스 예외발생시 처리 코드" );
System.out.println(e.toString());
} catch(ArithmeticException e) {
System.out.println( "연산 예외발생시 처리 코드" );
System.out.println(e.toString());
} catch(Exception e) {
System.out.println( "나머지 모든 예외발생시 처리 코드" );
System.out.println(e.getMessage());
} finally {
System.out.println( "예외 발생하든 발생하지 않든, 꼭 실행해야하는 코드는 여기 작성" );
}
}
}
기본 문법은 try와 catch 문장으로 실제 작동되는 코드를 감싸는 구조이다.
catch에서 어떤 오류 문구를 감지해 어떤 문장을 대신 실행시킬지 입력하면 된다.
finally 에서는 오류임에도 불구하고 꼭 실행시켜야하는 코드를 작성하면 된다.
아래는 실제 오류 출력 결과값 예시