Item 71. Necessary Checked Exception

ํ•„์š” ์—†๋Š” ๊ฒ€์‚ฌ ์˜ˆ์™ธ ์‚ฌ์šฉ์„ ํ”ผํ•˜๋ผ

๊ฒ€์‚ฌ ์˜ˆ์™ธ๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ์ผ์ด์ง€๋งŒ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•˜๋ฉด API์™€ ํ”„๋กœ๊ทธ๋žจ์˜ ์งˆ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.(์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ•์ œํ•จ์œผ๋กœ์จ API ์‚ฌ์šฉ์ž๊ฐ€ ์˜ˆ์™ธ ์ƒํ™ฉ์—์„œ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ) ํ•˜์ง€๋งŒ ๊ณผํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์“ฐ๊ธฐ ๋ถˆํŽธํ•œ API๋ฅผ ๋‚ณ๊ณ , ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ฝ”๋“œ ์ชฝ์˜ ๋ถ€๋‹ด์„ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ํ•„์š”ํ•œ ๊ณณ์—๋งŒ ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ

์•„๋ž˜์™€ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์—” ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ•์ œํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  • API๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ

  • ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์˜๋ฏธ ์žˆ๋Š” ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ

ํ•˜์ง€๋งŒ ๋งŒ์•ฝ ์œ„ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ํ•ด๋‹นํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ณด๋‹ค๋Š” ๋น„๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๊ฒ€์‚ฌ ์˜ˆ์™ธ ์‚ฌ์šฉ ํšŒํ”ผ

๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋Š” ๊ฒƒ์€ ๋งŽ์€ ๋ถ€๋‹ด์„ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์†Œํ™” ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋•Œ๋ฌธ์— ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ํšŒํ”ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.

์˜ต์…”๋„ ๋ฐ˜ํ™˜

๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ํšŒํ”ผํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์˜ต์…”๋„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ต์…”๋„์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด์„œ ์˜ˆ์™ธ ๋Œ€์‹  ๋นˆ ์˜ต์…”๋„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ํšŒํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.(๋Œ€์‹  ์˜ˆ์™ธ ๋ฐœ์ƒ ์ด์œ ์— ๋Œ€ํ•ด ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์—†๋‹ค.)

์ƒํƒœ ๊ฒ€์‚ฌ ๋ฉ”์„œ๋“œ

๊ธฐ์กด ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์•„๋ž˜ ๋‘ ๊ฐœ์˜ ๋ฉ”์„œ๋“œ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ํšŒํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ์ƒํƒœ ๊ฒ€์‚ฌ ๋ฉ”์„œ๋“œ: ์˜ˆ๋ขฐ๊ฐ€ ๋˜์ ธ์งˆ์ง€ ์—ฌ๋ถ€๋ฅผ boolean์œผ๋กœ ๋ฐ˜ํ™˜

  2. ๋™์ž‘ ๋ฉ”์„œ๋“œ: ์ƒํƒœ ๊ฒ€์‚ฌ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ํšŒํ”ผํ•œ ๋’ค ๋™์ž‘์„ ์ˆ˜ํ–‰(๊ฒ€์‚ฌ ์˜ˆ์™ธ ๋Œ€์‹  ๋น„๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ์ˆ˜ ์žˆ์Œ)

class Example {
    
    public static void main(String[] args) {
        if (obj.actionPermitted(args)) {
            obj.action(args);
        } else {
            // ์˜ˆ์™ธ ์ƒํ™ฉ ๋Œ€์ฒ˜ ์ฝ”๋“œ
        }
    }
}

Last updated

Was this helpful?