Throw์™€ Throws

์ด์Šน์ฃผยท2024๋…„ 4์›” 4์ผ
0

๐Ÿ“Œ Throw: ์˜ˆ์™ธ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ

ํ‚ค์›Œ๋“œ throw๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ณ ์˜๋กœ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๋ฐฉ๋ฒ•
1 . ์—ฐ์‚ฐ์ž new๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐœ์ƒ์‹œํ‚ค๋ ค๋Š” ์˜ˆ์™ธ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค.

 Exception e= new Exception("๊ณ ์˜๋กœ ๋ฐœ์ƒ์‹œํ‚ด");

2 . ํ‚ค์›Œ๋“œ throw๋ฅผ ์ด์šฉํ•ด์„œ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

 throw e
  • ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ throw๋กœ ๋˜์ ธ์•ผ์ง€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋จ
  • "๊ณ ์˜๋กœ ๋ฐœ์ƒ์‹œํ‚ด" ์ด๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ธด ๋ฌธ์ž์—ด์€ printStackTrave()๋‚˜ getmessage()๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์‹œ ์ฝ”๋“œ

์•„๋ž˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ throw new Exception("๊ณ ์˜๋กœ ๋ฐœ์ƒ์‹œ์ผฐ์Œ.") ์ฒ˜๋Ÿผ ํ•œ์ค„๋กœ ์˜ˆ์™ธ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ๋˜์ง€๋Š” ๊ฒƒ์„ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

class Tes {
    public static void main(String[] args) {
        try {
            Exception e = new Exception("๊ณ ์˜๋กœ ๋ฐœ์ƒ์‹œ์ผฐ์Œ.");
            throw e; // ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด
//            throw new Exception("๊ณ ์˜๋กœ ๋ฐœ์ƒ์‹œ์ผฐ์Œ."); // ์œ„  ๋‘ ์ค„์„ ํ•œ ์ค„๋กœ ์ž‘์„ฑ
        } catch(Exception e) {
            System.out.println("์—๋Ÿฌ ๋ฉ”์‹œ์ง€ : " + e.getMessage());
            e.printStackTrace();
        }
        System.out.println("ํ”„๋กœ๊ทธ๋žจ์ด ์ •์ƒ ์ข…๋ฃŒ๋˜์—ˆ์Œ.");
    }
}

๐Ÿ“Œ Throws: ๋ฉ”์„œ๋“œ ์˜ˆ์™ธ ์„ ์–ธํ•˜๊ธฐ

throw๋Š” ์˜ˆ์™ธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค. ํ•˜์ง€๋งŒ ๋น„์Šทํ•˜๊ฒŒ ์ƒ๊ธด throws๋Š” ์™„์ „ ๋‹ค๋ฅธ ์—ญํ• ์ธ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋‹ค.

์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  • try-catch: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ณณ์—์„œ ๋ฐ”๋กœ ์ฒ˜๋ฆฌ
  • throws: ๋ฉ”์†Œ๋“œ ๋‚ด์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ๋ฅผ ์„ ์–ธํ•˜๊ณ  ํ˜ธ์ถœํ•œ ๊ณณ์œผ๋กœ ๋˜์ ธ์„œ ์ฒ˜๋ฆฌ
    ๋‹จ ํ˜ธ์ถœํ•œ ๊ณณ์—์„œ try-catch๋กœ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ค˜์•ผํ•จ

๋ฐฉ๋ฒ•
์˜ˆ์™ธ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

  void method() throws Exception1, Exception2, ... ExceptionN {
         // ๋ฉ”์„œ๋“œ์˜ ๋‚ด์šฉ
    }

๋งŒ์•ฝ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ชจ๋“  ์˜ˆ์™ธ์˜ ์ตœ๊ณ  ์กฐ์ƒ์ธ Exception ํด๋ž˜์Šค๋ฅผ ๋ฉ”์„œ๋“œ์— ์„ ์–ธํ•˜๋ฉด, ์ด ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋Š” ๋œป

void method() throws Exception {
         // ๋ฉ”์„œ๋“œ์˜ ๋‚ด์šฉ
    }

์˜ˆ์‹œ ์ฝ”๋“œ

class ExceptionEx14 {
	public static void main(String[] args) {
		try  {
				method1();		
		} catch (Exception e)	{
				System.out.println("main๋ฉ”์„œ๋“œ์—์„œ ์˜ˆ์™ธ๊ฐ€ ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
				e.printStackTrace();
		}
	}	// main๋ฉ”์„œ๋“œ์˜ ๋

	static void method1() throws Exception {
		throw new Exception();
	}	// method1()์˜ ๋
} // class์˜ ๋
  1. method1 () ๋ฉ”์†Œ๋“œ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ๋ฅผ throws ์˜†์— ์ •์˜ํ•ด์คŒ
  2. main๋ฉ”์†Œ๋“œ์—์„œ method1() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
  3. method1 () ๋ฉ”์†Œ๋“œ์—์„œ ์˜ˆ์™ธ๋ฐœ์ƒ
  4. method1 () ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœํ•˜๋ฉฐ ๋ฐœ์ƒ๋œ ์˜ˆ์™ธ๊ฐ€ main๋ฉ”์†Œ๋“œ๋กœ ๋„˜์–ด์˜ด
  5. main๋ฉ”์†Œ๋“œ์˜ catch๋ฌธ์—์„œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

๐Ÿ“Œ ์ฐธ๊ณ  ์ž๋ฃŒ

์†ก๋ณ‘ํ›ˆ-Java์˜ ์ •์„ ์ •๋ฆฌ (์˜ˆ์™ธ์ฒ˜๋ฆฌ)

profile
๋ฐ˜๋ณต๋˜๋Š” ์‹ค์ˆ˜๋ฅผ ๊ธฐ๋ก์„ ํ†ตํ•ด ์ค„์—ฌ๊ฐ€๋ณด์ž!

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด