본문 바로가기

코딩/JAVA

JAVA 27. 예외

Try catch (예외처리)

자바에서 프로그램이 실행되는 도중 예외(에러)가 발생하면 그 시점에서 프로그램이 강제적으로 종료된다. 원랴는 프로그램을 디버깅해서 오류를 수정한 뒤 실행하는것이 원칙이지만, 때로는 예상할 수 있는 가벼운 오류가 있거나, 예외가 발생했을때도 프로그램종료를 하지않고 작업을 진행해야 할 때가 있다. <= failsafe 기법이라고 한다.

예외처리를 통해 프로그램의 비정상적인 종료를 줄이고 정상적으로 프로그램이 진행될 수 있도록 할 수 있다.

tip. 미리 의식하지말고 먼저 프로그램을 작성한 뒤 오류가 있을곳으로 예상되는 부분만 try ~ catch구문으로 감싸주면 된다.

 

 

package java11;

public class Test03 {

	public static void main(String[] args) {
		int n = 0;
		int result = 0;
		try {
		result = 10/n; // ERROR :  / by zero
		} catch (Exception e) { //다수의 오류를 ,로 구분해서 늘릴 수 있다.
			e.printStackTrace();
			System.out.println("ERROR OCCURRED");
		}
		System.out.println(result);		//try문장이 오류이므로 아예무시되어 0출력
	}
}

 

package java11;

public class Test04 {

	public static void main(String[] args) {
		int[] var = {10, 20, 30};
		try {
			for (int i=0; i<=var.length; i++) { // Index 3 out of bounds for length 3
				System.out.println("var [" +i+ "] = " +var[i]);
			}
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("배열 범위 초과 오류 발생");
		}
		System.out.println("프로그램 끝");
	}
}

 

package java11;
import java.util.Scanner;

public class Q1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		System.out.println("정수를 입력해주세요");
		
		try {
		int num = scan.nextInt();
		System.out.println(num);
		} catch (Exception e) {
//			e.printStackTrace(); //에러코드를 출력함
			System.out.println("정수가 아닌값이 입력되었습니다.");
		}
		System.out.println("프로그램 끝");
	}
}

package java11;

import java.util.Scanner;

class GenEx<T> {           
	T value;			
	public T getValue() {
		return value;
	}
	public void setValue (T value) {
		this.value = value;
	}
}


public class Q2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		System.out.println("정수를 입력해주세요");

		try {
		int num = scan.nextInt();
		System.out.println(num+ "은 정수입니다.");
		} catch (Exception e) {
			try {
			System.out.println((Double)scan.nextDouble()+ "은 실수입니다.");
			} catch (Exception e2) {
				System.out.println((String)scan.next()+ "은 문자입니다.");
			}
		}
		System.out.println("프로그램 끝");
	}
}

 

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

JAVA 28-1. 쓰레드2  (0) 2022.08.08
JAVA 28. 쓰레드  (0) 2022.08.08
JAVA 26. 내부 클래스  (0) 2022.07.31
JAVA 25. ENUM  (0) 2022.07.31
JAVA 24. 인터페이스  (0) 2022.07.31