๋ฉ€ํ‹ฐ ์บ์น˜ ์ž‘๋™ ๋ฐฉ์‹ - 1

"์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜์—…์ด ๋ช‡ ๊ฐœ ๋” ์žˆ์–ด์š”. ์˜ค, ๊ฐ€๋ฅด์น˜๋Š” ๊ฒŒ ์ •๋ง ์ข‹์•„์š”!"

"์—ฌ๋Ÿฌ catch ๋ธ”๋ก์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค . ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. try ๋ธ”๋ก์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‹คํ–‰์ด ์ฒซ ๋ฒˆ์งธ catch ๋ธ”๋ก์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค."

"catch ๋ธ”๋ก์˜ ๊ด„ํ˜ธ ์•ˆ์— ํ‘œ์‹œ๋œ ์œ ํ˜•์ด ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ ์œ ํ˜•๊ณผ ์ผ์น˜ํ•˜๋ฉด ํ•ด๋‹น ๋ธ”๋ก ๋‚ด์—์„œ ์‹คํ–‰์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋™์ผํ•œ ๊ฒ€์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ๋‹ค์Œ catch ๋ธ”๋ก ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค ."

" catch ๋ธ”๋ก์ด ๋ถ€์กฑ ํ•˜๊ณ  ์˜ˆ์™ธ๊ฐ€ ํฌ์ฐฉ๋˜์ง€ ์•Š์œผ๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜๊ณ  ํ˜„์žฌ ๋ฉ”์„œ๋“œ๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค."

"๊ทธ๋ ‡๊ตฐ์š”. ์˜ˆ์™ธ ์œ ํ˜•๊ณผ ์ผ์น˜ํ•˜๋Š” catch ๋ธ”๋ก์ด ์‹คํ–‰๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค."

"๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์ข€ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cow ํด๋ž˜์Šค๊ฐ€ Animal ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” ๊ฒฝ์šฐ Cow ๊ฐ์ฒด๋Š” Cow ๋ณ€์ˆ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Animal ๋ณ€์ˆ˜์— ์˜ํ•ด์„œ๋„ ์ฐธ์กฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "

"๊ทธ๋ฆฌ๊ณ ?"

"๋ชจ๋“  ์˜ˆ์™ธ๋Š” Exception ๋˜๋Š” RuntimeException ( Exception ๋„ ์ƒ์†ํ•จ )์„ ์ƒ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ 'catch( Exception e)' ๋˜๋Š” ' catch(RuntimeException e) ' ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ."

"๊ทธ๋ฆฌ๊ณ ?"

"์šฐ๋ฆฌ๋Š” ๋‘ ๊ฐ€์ง€ ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, 'catch(์˜ˆ์™ธ e)'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘˜์งธ, catch ๋ธ”๋ก์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. "

"์—ฌ๊ธฐ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๊ฐ€ ์žˆ์–ด์š”:"

" ArithmeticException0์œผ๋กœ ๋‚˜๋ˆˆ ํ›„์— ๋ฐœ์ƒํ•˜๋Š” ๋Š” ๋‘ ๋ฒˆ์งธ catch ๋ธ”๋ก์—์„œ ์žกํž™๋‹ˆ๋‹ค."

์•”ํ˜ธ
try
{
    System.out.println("Before calling method1.");
    int a = 1 / 0;
    System.out.println("After calling method1. This will never be shown.");
}
catch (NullPointerException e)
{
    System.out.println("Null reference. Exception has been caught.");
}
catch (ArithmeticException e)
{
    System.out.println("Division by zero. Exception has been caught.");
}
catch (Exception e)
{
    System.out.println("Any other errors. Exception has been caught.");
}

"์•„๋ž˜ ์˜ˆ์—์„œ ArithmeticException๋ชจ๋“  ์˜ˆ์™ธ๋Š” ์˜ˆ์™ธ๋ฅผ ์ƒ์†ํ•˜๋ฏ€๋กœ ์ฒซ ๋ฒˆ์งธ catch ๋ธ”๋ก์—์„œ catch๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, Exception๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. "

์•”ํ˜ธ
try
{
    System.out.println("Before calling method1.");
    int a = 1/0;
    System.out.println("After calling method1. This will never be shown.");
}
catch (Exception e)
{
    System.out.println("Any other errors. Exception has been caught.");
}
catch (NullPointerException e)
{
    System.out.println("Null reference. Exception has been caught.");
}
catch (ArithmeticException e)
{
    System.out.println("Divided by zero. Exception has been caught.");
}

"์•„๋ž˜ ์˜ˆ์—์„œ๋Š” ArithmeticException์žกํžˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜ธ์ถœ ๋ฉ”์„œ๋“œ๋กœ ๋‹ค์‹œ throw๋ฉ๋‹ˆ๋‹ค."

์•”ํ˜ธ
try
{
    System.out.println("Before calling method1.");
    int a = 1/0;
    System.out.println("After calling method1. This will never be shown.");
}
catch (NullPointerException e)
{
    System.out.println("Null reference. Exception has been caught.");
}

"๊ทธ๊ฒƒ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ์กฐ๊ธˆ ์ •๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ์ฃผ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค."

"๊ทธ๋ƒฅ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ Java์—์„œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค."

"๊ธฐ๋ปํ•ด์•ผ ํ• ์ง€ ์Šฌํผํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด..."