item 72 dodo4513 - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
μμ΄ν 72 νμ€ μμΈλ₯Ό μ¬μ©νλΌ
무μμ΄ μ’μμ§λ?
- μ¬λ¬λΆμ APIκ° λ€λ₯Έ μ¬λμ΄ μ΅νκ³ μ¬μ©νκΈ° μ¬μμ§λ€λ κ²μ΄λ€.
λ§μ νλ‘κ·Έλλ¨Έμκ² μ΄λ―Έ μ΅μν΄μ§ κ·μ½μ κ·Έλλ‘ λ°λ₯΄κΈ° λλ¬Έμ΄λ€. - μμΈν΄λμ€ μκ° μ μμλ‘ λ©λͺ¨λ¦¬ μ¬μ©λλ μ€κ³ ν΄λμ€λ₯Ό μ μ¬νλ μκ°λ μ κ² κ±Έλ¦°λ€.
μ¬μ©νλ©΄ μ’μ μμΈλ€
IllegalArgumentException
νΈμΆμκ° μΈμλ‘ λΆμ μ ν κ°μ λκΈΈ λ λμ§λ μμΈλ‘, μλ₯Ό λ€μ΄ λ°λ³΅ νμλ₯Ό μ§μ νλ 맀κ°λ³μμ μμλ₯Ό κ±΄λ¬ λ μΈ μ μλ€.
IllegalStateException
μ΄ μμΈλ λμ κ°μ²΄μ μνκ° νΈμΆλ λ©μλλ₯Ό μννκΈ°μ μ ν©νμ§ μμ λ μ£Όλ‘ λμ§λ€. μ컨λ μ λλ‘ μ΄κΈ°νλμ§ μμ κ°μ²΄λ₯Ό μ¬μ©νλ € ν λ λμ§ μ μλ€.
NullPointerException
λ©μλκ° λμ§λ λͺ¨λ μμΈλ₯Ό μλͺ»λ μΈμλ μνλΌκ³ λλ±κ·Έλ¦΄ μλ μκ² μ§λ§, κ·Έμ€ νΉμν μΌλΆλ λ°λ‘ ꡬλΆν΄ μ°λ κ² λ³΄ν΅μ΄λ€. null κ°μ νμ©νμ§ μλ λ©μλμ nullμ 건λ€λ©΄ κ΄λ‘μ IllegalArgumentExceptionμ΄ μλ NullPointerExceptionμ λμ§λ€.
IndexOutOfBoundsException
λΉμ·νκ², μ΄λ€ μνμ€μ νμ© λ²μλ₯Ό λλ κ°μ κ±΄λ¬ λλ IllegalArgumentException보λ€λ IndexOutOfBoundsException μ λμ§λ€.
ConcurrentModificationException
λ¨μΌ μ€λ λμμ μ¬μ©νλ €κ³ μ€κ³ν κ°μ²΄λ₯Ό μ¬λ¬ μ€λ λκ° λμμ μμ νλ € ν λ λμ§λ€(μΈλΆ λκΈ°ν λ°©μμΌλ‘ μ¬μ©νλ €κ³ μ€κ³ν κ°μ²΄λ λ§μ°¬κ°μ§λ€). μ¬μ€ λμ μμ μ νμ€ν κ²μΆν μ μλ μμ λ λ°©λ²μ μμΌλ, μ΄ μμΈλ λ¬Έμ κ° μκΈΈ κ°λ₯μ±μ μλ €μ£Όλ μ λμ μν λ‘ μ°μΈλ€.
UnsupportedOperationException
μ΄ μμΈλ ν΄λΌμ΄μΈνΈκ° μμ²ν λμμ λμ κ°μ²΄κ° μ§μνμ§ μμ λ λμ§λ€. λλΆλΆ κ°μ²΄λ μμ μ΄ μ μν λ©μλλ₯Ό λͺ¨λ μ§μνλ νν μ°μ΄λ μμΈλ μλλ€.
보ν΅μ ꡬννλ €λ μΈν°νμ΄μ€μ λ©μλ μΌλΆλ₯Ό ꡬνν μ μμ λ μ°λλ°, μ컨λ μμλ₯Ό λ£μ μλ§ μλ List ꡬν체μ λκ³ λκ΅°κ° remove λ©μλλ₯Ό νΈμΆνλ©΄ μ΄ μμΈλ₯Ό λμ§ κ²μ΄λ€.
μ£Όμμ
Exception, RuntimeException, Throwable, Errorλ μ§μ μ¬μ¬μ©νμ§ λ§μ.
μ΄ ν΄λμ€λ€μ μΆμ ν΄λμ€λΌκ³ μκ°νκΈΈ λ°λλ€. μ΄ μμΈλ€μ λ€λ₯Έ μμΈλ€μ μμ ν΄λμ€μ΄λ―λ‘, μ¦ μ¬λ¬ μ±κ²©μ μμΈλ€μ ν¬κ΄νλ ν΄λμ€μ΄λ―λ‘ μμ μ μΌλ‘ ν μ€νΈν μ μλ€.
λ λ§μ μ 보λ₯Ό μ 곡νκΈΈ μνλ€λ©΄ νμ€ μμΈλ₯Ό νμ₯ν΄λ μ’λ€.
λ¨, μμΈλ μ§λ ¬νν μ μλ€λ μ¬μ€μ κΈ°μ΅νμ(12μ₯). (μ§λ ¬νμλ λ§μ λΆλ΄μ΄ λ°λ₯΄λ) μ΄ μ¬μ€λ§μΌλ‘λ λλ§μ μμΈλ₯Ό μλ‘ λ§λ€μ§ μμμΌ ν κ·Όκ±°λ‘ μΆ©λΆν μ μλ€.