๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Java

[Java-๊ธฐ์ดˆ] ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์˜ˆ์™ธ๊ฐ€ ์ฒดํฌ๋˜๋Š” ๊ฒฝ์šฐ

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 2. 22.
๋ฐ˜์‘ํ˜•

โ–ถ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์˜ˆ์™ธ๊ฐ€ ์ฒดํฌ๋˜๋Š” ๊ฒฝ์šฐ

์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋Š” ๋งŽ์€ ์˜ˆ์™ธํด๋ž˜์Šค๋“ค์€ ์ž๋ฐ”์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋‚จ๋Š” ๊ฒƒ์ด ๋งŽ๋‹ค.

โ€‹

โ€‹

 

*ํŒŒ์ผ ์ž…์ถœ๋ ฅ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ

์ž๋ฐ”์—์„œ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐ ์ŠคํŠธ๋ฆผ(stream) ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

package exception;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class ExceptionHandling1 {
	public static void main(String[] args) {
		try {
			FileInputStream fis = new FileInputStream("a.txt");
		} catch (FileNotFoundException e) {
			System.out.println(e); // ์˜ˆ์™ธ ํด๋ž˜์Šค์˜ toString() ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
		}
		System.out.println("์—ฌ๊ธฐ๋„ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค."); // ์ •์ƒ ์ถœ๋ ฅ
	}
}

โ€‹<์‹คํ–‰ ๊ฒฐ๊ณผ>

-์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค๊ณ  ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ˆ์™ธ ์ƒํ™ฉ ์ž์ฒด๋ฅผ ๋ง‰์„ ์ˆ˜๋Š” ์—†๋‹ค. ํ•˜์ง€๋งŒ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฉด ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์•Œ๋ ค ์ฃผ๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ณ  ๊ณ„์† ์ˆ˜ํ–‰๋˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

โ€‹

โ€‹

โ€‹

-try-catch-finally๋ฌธ

๋งŒ์•ฝ try ๋ธ”๋ก ์•ˆ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ ์ƒํ™ฉ์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด catch ๋ธ”๋ก์„ ์˜ˆ์™ธ ์ƒํ™ฉ ์ˆ˜๋งŒํผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ ๋ธ”๋ก์— ๋ชจ๋‘ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ฒˆ๊ฑฐ๋กœ์šธ ๊ฒƒ์ด๋‹ค. ์ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋ก์ด finally์ด๋‹ค.

์ผ๋‹จ try ๋ธ”๋ก์ด ์ˆ˜ํ–‰๋˜๋ฉด finally ๋ธ”๋ก์€ ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ๋ฐ˜๋“œ์‹œ ์ˆ˜ํ–‰๋œ๋‹ค.

 

package exception;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class ExceptionHandling3 {
	public static void main(String[] args) {
		FileInputStream fis = null;

		try {
			fis = new FileInputStream("a.txt");
		} catch (FileNotFoundException e) {
			System.out.println(e);
			return;
		} finally {
			if (fis != null) {
				try {
					fis.close(); // ํŒŒ์ผ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ๋‹ซ๊ธฐ
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			System.out.println("ํ•ญ์ƒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.");
		}
		System.out.println("์—ฌ๊ธฐ๋„ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.");
	}
}

<์‹คํ–‰ ๊ฒฐ๊ณผ>

-15ํ–‰์˜ return๋ฌธ๊ณผ ์ƒ๊ด€์—†์ด ์ถœ๋ ฅ๋œ๋‹ค.

โ€‹

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€