๐Ÿ“œ CleanCode

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

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

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

https://yeun-devlog.tistory.com/entry/JAVA%EC%98%88%EC%99%B8-%EC%97%90%EB%9F%AC-throw-throws

 

[JAVA]์˜ˆ์™ธ & ์—๋Ÿฌ, throw & throws

์˜ˆ์™ธ & ์—๋ŸฌException & Error์—๋Ÿฌ Error๊ฐ„๋‹จํžˆ ๋งํ•ด ์—๋Ÿฌ๋Š” ์‹ฌ๊ฐํ•œ ๊ฒฝ์šฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.ex) ์‹œ์Šคํ…œ์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ถ€์กฑ์˜ˆ์™ธ Exception์ฝ”๋“œ๋ฅผ Runํ•˜๊ธฐ ์ „, ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ๊ฐœ๋ฐœ์ž์˜ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—์„œ ๋ฐœ์ƒํ•˜

yeun-devlog.tistory.com


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

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

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

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

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

  • 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
๊ฐœ๋ฐœ์ž๋Š” ๋จผ์ € ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฒ€์ฆํ•˜๋Š” ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
๊ทธ๋Ÿฐ ํ›„์—, ๊ทธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•