Item 74. Exception Documentation

λ©”μ„œλ“œκ°€ λ˜μ§€λŠ” λͺ¨λ“  μ˜ˆμ™Έλ₯Ό λ¬Έμ„œν™”ν•˜λΌ

검사 μ˜ˆμ™ΈλŠ” 항상 λ”°λ‘œ μ„ μ–Έν•˜λ©΄μ„œ, 각 μ˜ˆμ™Έκ°€ λ°œμƒν•˜λŠ” 상황을 μžλ°”λ…μ˜ @throws νƒœκ·Έλ₯Ό μ‚¬μš©ν•΄ μ •ν™•νžˆ λ¬Έμ„œν™”ν•΄μ•Ό ν•œλ‹€.(곡톡 μƒμœ„ 클래슀 ν•˜λ‚˜λ‘œ μ„ μ–Έν•˜μ§€ 말고, 각각의 μ˜ˆμ™Έλ₯Ό μ„ μ–Έν•΄μ•Ό ν•œλ‹€.) μ˜ˆμ™Έ λ¬Έμ„œν™”μ— λŒ€ν•œ κ°€μ΄λ“œλŠ” μ•„λž˜μ™€ κ°™λ‹€.

  1. main λ©”μ„œλ“œ(main λ©”μ„œλ“œλŠ” JVM만이 ν˜ΈμΆœν•˜κΈ° λ•Œλ¬Έ)λ₯Ό μ œμ™Έν•˜κ³ μ„œλŠ” Exceptionμ΄λ‚˜ Throwable 같은 곡톡 μƒμœ„ 클래슀λ₯Ό λ˜μ§€λŠ” 것은 쒋지 μ•Šλ‹€.

  2. μžλ°” μ–Έμ–΄ μžμ²΄κ°€ μš”κ΅¬ν•˜λŠ” 것은 μ•„λ‹ˆμ§€λ§Œ 비검사 μ˜ˆμ™Έλ„ 검사 μ˜ˆμ™Έμ²˜λŸΌ λ¬Έμ„œν™”ν•˜μ—¬, λ©”μ„œλ“œλ₯Ό μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” 게 μ’‹λ‹€.

    • public λ©”μ„œλ“œλΌλ©΄ 비검사 μ˜ˆμ™Έλ„ λ¬Έμ„œν™”ν•˜μ—¬ λ©”μ„œλ“œ μ‚¬μš©μžμ—κ²Œ μ•Œλ €μ£ΌλŠ” 것이 μ’‹λ‹€.

    • λ‚˜μ•„κ°€ μΈν„°νŽ˜μ΄μŠ€ λ©”μ„œλ“œμ— μ„ μ–Έν•˜μ—¬ 일반 κ·œμ•½μ— μ†ν•˜κ²Œ λ§Œλ“€μ–΄ λͺ¨λ“  κ΅¬ν˜„μ²΄κ°€ μΌκ΄€λ˜κ²Œ λ™μž‘ν•˜λ„λ‘ ν•  μˆ˜λ„ μžˆλ‹€.

  3. λ©”μ„œλ“œκ°€ 던질 수 μžˆλŠ” μ˜ˆμ™Έλ₯Ό 각각 @throws νƒœκ·Έλ‘œ λ¬Έμ„œν™”ν•˜μ§€λ§Œ, 비검사 μ˜ˆμ™ΈλŠ” throws λͺ©λ‘μ— 넣지 말아야 ν•œλ‹€.

    • 검사/비검사에 따라 μ‚¬μš©μžκ°€ μ²˜λ¦¬ν•΄μ•Ό ν•  일이 달라지기 λ•Œλ¬Έμ— κ·Έ λ‘˜μ„ ν™•μ‹€νžˆ ꡬ뢄해주어야 μ‚¬μš©μžκ°€ μ–΄λŠ 것이 비검사 μ˜ˆμ™ΈμΈμ§€ λ°”λ‘œ μ•Œ 수 μžˆλ‹€.

  4. ν•œ ν΄λž˜μŠ€μ— μ •μ˜λœ λ§Žμ€ λ©”μ„œλ“œκ°€ 같은 이유둜 같은 μ˜ˆμ™Έλ₯Ό λ˜μ§„λ‹€λ©΄, λ©”μ„œλ“œκ°€ μ•„λ‹Œ 클래슀 μ„€λͺ…에 ν•΄λ‹Ή μ˜ˆμ™Έλ₯Ό λ¬Έμ„œν™”ν•˜λŠ” 것이 μ’‹λ‹€.

Last updated