๐Ÿ“œ CleanCode

[CleanCode]์˜ค๋ฅ˜์ฒ˜๋ฆฌ-์˜ค๋ฅ˜์ฝ”๋“œ๋ณด๋‹ค ์˜ˆ์™ธ(try/catch&throws)๋ฅผ ์ด์šฉํ•˜๋ผ

๋‰ด์ด NUEY 2024. 9. 25. 17:43
๋ฐ˜์‘ํ˜•

์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ ์ด ๊ธ€์„ ๊ฐ„๋‹จํžˆ ๋ณด์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2024.09.25 - [โ˜• ์ž๋ฐ” JAVA/โ˜• ํด๋ž˜์Šค์™€ ํ•จ์ˆ˜ Class & Method] - [JAVA]์˜ˆ์™ธ & ์—๋Ÿฌ, throw & throws


์˜ค๋ฅ˜ ์ฝ”๋“œ๋ณด๋‹ค
์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

์œ„์™€ ๊ฐ™์ด ์˜ˆ์™ธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์€ ์‹œ์ ˆ์˜ ์ฝ”๋“œ์—์„œ๋Š”

  • ์˜ค๋ฅ˜ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜
    INVALID
    DEVICE_SUSPENDED
  • ํ˜ธ์ถœ์ž์—๊ฒŒ ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ „๋ถ€์˜€๋‹ค.
    logger.log(Level.WARNING, "Device suspended. Unable to shut down");
  • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ์ฆ‰์‹œ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
    ํ•œ ๋งˆ๋””๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด ์‚ฌ์šฉํ•˜๊ธฐ ๊นŒ๋‹ค๋กœ์›Œ ์ง„๋‹ค.
  • ๋”ฐ๋ผ์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋Š” ํŽธ์ด ๋‚ซ๋‹ค.

์œ„์˜ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๋ฉด์„œ..
throws๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด main()์—์„œ๋„ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ปดํŒŒ์ผ์—๋Ÿฌ๊ฐ€ ๋œจ๋Š”๋ฐ
์ด ๊ฒฝ์šฐ ๋ณดํ†  main()์—์„œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ try/catch๋ฌธ์— ๋‹ด์•„์ฃผ๋Š” ๊ฒŒ ์ผ๋ฐ˜์ ์ด๋‹ค.
๊ถŒ์žฅ
๋น„๊ถŒ์žฅ

์ด๋ณด๋‹ค ๋‚˜์€ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ํฌ์ŠคํŠธ ์ฐธ์กฐ.

2024.11.04 - [โ˜• ์ž๋ฐ” JAVA/โ˜• ํด๋ž˜์Šค์™€ ํ•จ์ˆ˜ Class & Method] - [JAVA]์‚ฌ์šฉ์ž์ •์˜ ์˜ˆ์™ธํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ, ์—ฐ๊ฒฐ๋œ ์˜ˆ์™ธ


์˜ˆ์™ธ๋ฅผ ์ ์šฉ์‹œํ‚จ ์ฝ”๋“œ

  • try / catch๋ฌธ๊ณผ throws ๋ฅผ ์ด์šฉํ–ˆ๋‹ค.
  • ์ฝ”๋“œ๊ฐ€ ๋” ๋‹จ์ˆœํ•˜๋ฉฐ ํ’ˆ์งˆ์ด ์ข‹์•„์กŒ๋‹ค.
  • ์˜ค๋ฅ˜๋ฅผ ์˜ˆ์™ธ๋กœ ๋˜์ ธ
    ์˜ค๋ฅ˜์ฒ˜๋ฆฌ๋ฅผ ๋‹ค๋ฅธ (์˜ˆ์™ธ)ํด๋ž˜์Šค์— ๋งก๊ฒผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

try-catch-finally ๋ฌธ๋ถ€ํ„ฐ ์ž‘์„ฑํ•˜๋ผ

try ๋ธ”๋ก์— ์ ํžŒ ์ฝ”๋“œ์— ๋ฌด์Šจ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด

catch ๋ธ”๋ก์€ ์ด๋ฅผ ์ˆ˜์Šตํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์˜ˆ์™ธ๋ฅผ ๋Œ€๋น„ํ•  ์ฝ”๋“œ๋ฅผ ์งค ๊ฒฝ์šฐ try-catch-finally๋ฌธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ์ž‘์„ฑ์‹œ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€์ง€ ์•Š์•„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” (ํ†ต๊ณผ)์‹คํŒจํ•  ํ™•๋ฅ ์ด ๋†’๋‹ค.
try/catch๋ฅผ ์ด์šฉํ•ด ์˜ˆ์™ธ๋ฅผ ๋˜์ ธ ์ด์ œ ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณตํ•œ๋‹ค. ์ด ์‹œ์ ๋ถ€ํ„ฐ ์ด์ œ ๋ฆฌํŒฉํ„ฐ๋ง์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
์˜ˆ์™ธ ์œ ํ˜•์„ ์ขํ˜€ File Not Found ์œ ํ˜•์œผ๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค.

  • try/catch๋ฌธ์œผ๋กœ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด
  • TDD๋ฅผ ์‚ฌ์šฉํ•ด ๋‚˜๋จธ์ง€ ๋…ผ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
    ex) FileNotFoundException
  • ๊ฐ•์ œ๋กœ ์˜ˆ์™ธ๋ฅผ ์ผ์œผํ‚ค๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑ ํ›„
    ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
  • ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•˜๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ try๋ธ”๋ก ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋œ๋‹ค.
TDD
Test Driven Develpment
๊ฐœ๋ฐœ์ž๋Š” ๋จผ์ € ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฒ€์ฆํ•˜๋Š” ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
๊ทธ๋Ÿฐ ํ›„์—, ๊ทธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•