개발(Web)/Web

[Java] 생활코딩 JAVA 예외

shinyelee 2020. 12. 30. 18:39

[생활코딩 JAVA 예외]

Ⅱ. 예외의 발생

package projectException;

public class ExceptionApp {

	public static void main(String[] args) {
		System.out.println(1);
		System.out.println(2/0); // ArithmeticException by zero
		System.out.println(3);
	}

}


Ⅲ. 예외의 처리

package projectException;

public class ExceptionApp {

	public static void main(String[] args) {
		System.out.println(1);
		int [] scores = {10, 20, 30};
		
		try {
			System.out.println(2);
			System.out.println(scores[3]); // 여기부터
			System.out.println(3);
			System.out.println(2/0);
			System.out.println(4); // 여기까지 출력 X.
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("존재하지 않는 값입니다.");
		} catch (ArithmeticException e) {
			System.out.println("잘못된 계산입니다.");
		}
		System.out.println(5);
	}

}


Ⅳ. 예외의 우선순위

package projectException;

public class ExceptionApp {

	public static void main(String[] args) {
		System.out.println(1);
		int [] scores = {10, 20, 30};
		
		try {
			System.out.println(2);
			System.out.println(scores[3]); // 여기부터
			System.out.println(3);
			System.out.println(2/0);
			System.out.println(4); // 여기까지 출력 X.
		} catch (Exception e) {
			System.out.println("뭔가 잘못된 것 같다."); // 예외 퉁치기.
		}
		System.out.println(5);
	}

}


Ⅴ. e의 비밀

package projectException;

public class ExceptionApp {

	public static void main(String[] args) {
		System.out.println(1);
		int [] scores = {10, 20, 30};
		
		try {
			System.out.println(2);
			System.out.println(scores[3]); // 여기부터
			System.out.println(3);
			System.out.println(2/0);
			System.out.println(4); // 여기까지 출력 X.
		} catch (Exception e) {
			System.out.println("뭔가 잘못된 것 같다."+e.getMessage());
			e.printStackTrace();
		}	// e.getMessage(): 에러 원인 알려줌.
		System.out.println(5);
	}

}


Ⅵ. checked vs unchecked exception

package projectException;

import java.io.FileWriter;

public class CheckedExceptionApp {

	public static void main(String[] args) {
		
		try {
			FileWriter f = new FileWriter("data.txt");
			f.write("Hello");
			f.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

}


Ⅶ. finally와 resource 다루기

package projectException;

import java.io.FileWriter;
import java.io.IOException;

public class CheckedExceptionApp {

	public static void main(String[] args) {
		FileWriter f = null;
		try {
			f = new FileWriter("data.txt");
			f.write("Hello");
			// close를 하기 전 예외가 발생할 수 있기 때문에
			// -> finally로 처리해야 한다.
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			// 만약에 f가 null이 아니라면
			if(f!=null) {
				try {
					f.close();
				}
				catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
	}

}

Ⅷ. try-with-resource

package projectException;

import java.io.FileWriter;
import java.io.IOException;

public class CheckedExceptionApp {

	public static void main(String[] args) {
		// try with resource statements
		try (FileWriter f = new FileWriter("data.txt")){
			f.write("Hello");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Ⅸ. 수업을 마치며

package projectException;

import java.io.FileWriter;
import java.io.IOException;

public class ThrowException {

	public static void main(String[] args) throws IOException {
		FileWriter f = new FileWriter("data.txt");
	}	// try~catch로 감싸도 됨.
}
package projectException;

public class MyException {

	public static void main(String[] args) {
		throw new RuntimeException("문제가 발생했습니다.");
	}

}

 

출처 : 

 

Java 예외

수업소개 예상하지 못한 상황을 예외라고 합니다. 예외가 발생했을 때를 대비하는 방법에 대해서 다루는 수업입니다.  수업대상 보다 튼튼한 프로그램을 만들고 싶은 분 에러가 발생했을 때 어

opentutorials.org

반응형