반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

java.Exception Handling(예외 처리).finally 본문

[IT]/java

java.Exception Handling(예외 처리).finally

givemebro 2021. 3. 9. 17:45
반응형

finally

예외 발생 여부와 관계없이 항상 실행

비정상 종료시에도 finally는 실행 됨

 ex)입출금기에서 에러 혹은 예외가 발생해도 카드를 반환해줘야 할 때 사용


 

package step3;

public class TestException5 {
	public static void main(String[] args) {
		// 코드 실행 결과 예상

		String age = "21";
//		age = "스물한살";
		try {
			int intAge = Integer.parseInt(age);// 문자열을 정수로 변환
			System.out.println(intAge + 1);// 22
		} catch (NullPointerException ne) {
			System.out.println("b");// 실행 안 됨
		} catch (NumberFormatException nf) {
			System.out.println("a");
		} finally {// 항상 실행
			System.out.println("f");
		}
		System.out.println("c");
	}
}
/*
22
f
c
*/
package step3;

public class TestException5 {
	public static void main(String[] args) {
		// 코드 실행 결과 예상

		String age = "21";
		age = "스물한살";
		try {
			int intAge = Integer.parseInt(age);// 문자열을 정수로 변환
			System.out.println(intAge + 1);// 22
		} catch (NullPointerException ne) {
			System.out.println("b");// 실행 안 됨
		} catch (NumberFormatException nf) {
			System.out.println("a");
		} finally {// 항상 실행
			System.out.println("f");
		}
		System.out.println("c");
	}
}
/*
a
f
c
*/

예외 처리하지 않아도 실행

package step3;

public class TestException5 {
	public static void main(String[] args) {
		// 코드 실행 결과 예상

		String age = "21";
		age = "스물한살";
		try {
			System.out.println(3/0);
			int intAge = Integer.parseInt(age);// 문자열을 정수로 변환
			System.out.println(intAge + 1);// 22
		} catch (NullPointerException ne) {
			System.out.println("b");// 실행 안 됨
		} catch (NumberFormatException nf) {
			System.out.println("a");
		} finally {// 항상 실행
			System.out.println("f");
		}
		System.out.println("c");
	}
}
/*
f
Exception in thread "main" java.lang.ArithmeticException: / by zero
	at step3.TestException5.main(TestException5.java:10)
*/

package step2;

import java.io.FileNotFoundException;
import java.io.FileReader;

class MemoService {
	// throws : 호출한 측으로 예외 발생시 해당 Exception 객체를 전달하겠다는 의미
	public void readMemo(String filePath) throws FileNotFoundException {// throws Exception : Exception전체를 넘김/여러개의
																		// Exception 넘길 수 있음
		try {
			FileReader fr = new FileReader(filePath);
			System.out.println(filePath + "의 파일 정보를 읽는 작업을 수행");
		} finally {
			System.out.println("항상 실행해야 하는 부분은 finally로 처리");
		}
	}
}

public class TestThrows1 {
	public static void main(String[] args) throws FileNotFoundException {
		MemoService service = new MemoService();
		try {
			service.readMemo("C: kosta215\\a.txt");
		} catch (FileNotFoundException e) {
			System.out.println("file이 없어서 읽을 수가 없도다. 파일명을 다시 확인해달라.");
//			e.printStackTrace();
		}
		System.out.println("프로그램 정상 수행");
	}
}
/*
항상 실행해야 하는 부분은 finally로 처리
file이 없어서 읽을 수가 없도다. 파일명을 다시 확인해달라.
프로그램 정상 수행
*/

 

 

java.Exception Handling(예외 처리)

Excetion Handling(예외 처리) Exception : 예외 / Error : 에러 Exception Handling(예외처리) : 프로그램 실행시 예외적 상황 발생에 대한 대안흐름(대처방안)을 실행하고 프로그램을 정상 수행하는데 있음 > E..

broscoding.tistory.com

 

반응형
Comments