- μ€λ₯ μ²λ¦¬
- μ€μννΈμμ μ€λ₯(Error)λ ErrorλΌλ νλ‘ν μ½μ μ€μνλ νμ μ κ°μ ν΅ν΄ ννλλ€.
- Error νλ‘ν μ½μ μ¬μ€μ μꡬμ¬νμ΄ μλ λΉ νλ‘ν μ½μΌ λΏμ΄μ§λ§, μ€λ₯λ₯Ό νννκΈ° μν νμ (μ£Όλ‘ μ΄κ±°ν)μ μ΄ νλ‘ν μ½μ μ±ννλ€.
- μ€μννΈμ μ΄κ±°νμ μ€λ₯μ μ’ λ₯λ₯Ό λνλ΄κΈ°μ μμ£Ό μ ν©ν κΈ°λ₯μ΄λ€.
- μ°κ΄ κ°μ ν΅ν΄ μ€λ₯μ κ΄ν λΆκ° μ 보λ₯Ό μ 곡ν μλ μλ€.
μ΄λ² μμ μλ νλ‘κ·Έλ¨ λ΄μμ μνκΈ°λ₯Ό μλμν€λ €κ³ ν λ λ°μνλ μ€λ₯μν©μ ꡬνν΄ λ³΄μλ€.
- μ€λ₯ νν
- Error νλ‘ν μ½κ³Ό (μ£Όλ‘)μ΄κ±°νμ ν΅ν΄μ μ€λ₯λ₯Ό νννλ€.
- μνκΈ° λμ μ€λ₯μ μ’ λ₯λ₯Ό ννν VendingMachineError μ΄κ±°ν
- ν¨μμμ λ°μν μ€λ₯ λμ§κΈ°
μνκΈ° λμ λμ€ λ°μν μ€λ₯λ₯Ό λμ§λ λ©μλλ₯Ό ꡬνν΄λ³Έλ€.
- μ€λ₯ λ°μμ μ¬μ§κ° μλ λ©μλλ throwsλ₯Ό μ¬μ©νμ¬ μ€λ₯λ₯Ό λ΄ν¬νλ ν¨μμμ νμνλ€.
- μ€λ₯ μ²λ¦¬
- μ€λ₯λ₯Ό λμ§ μλ μμ§λ§ μ€λ₯κ° λμ Έμ§λ κ²μ λλΉνμ¬ λμ Έμ§ μ€λ₯λ₯Ό μ²λ¦¬νκΈ° μν μ½λλ μμ±ν΄μΌ νλ€. μλ₯Ό λ€μ΄ λμ Έμ§ μ€λ₯κ° λ¬΄μμΈμ§ νλ¨νμ¬ λ€μ λ¬Έμ λ₯Ό ν΄κ²°νλ€λ μ§, λ€λ₯Έ λ°©λ²μΌλ‘ μλν΄ λ³Έλ€λ μ§, μ¬μ©μμκ² μ€λ₯λ₯Ό μλ¦¬κ³ μ¬μ©μμκ² μ ν κΆνμ λκ²¨μ£Όμ΄ λ€μμ μ΄λ€ λμμ νκ² ν κ²μΈμ§ κ²°μ νλλ‘ μ λνλ λ±μ μ½λλ₯Ό μμ±ν΄μΌ νλ€.
- μ€λ₯λ°μμ μ¬μ§κ° μλ throws ν¨μ(λ©μλ)λ tryλ₯Ό μ¬μ©νμ¬ νΈμΆν΄μΌνλ€. tryμ do-catch, try?μ try! λ±μ λν΄ μμλ³Έλ€.
<<do-catch>>
- μ€λ₯λ°μμ μ¬μ§κ° μλ throws ν¨μ(λ©μλ)λ do-catch ꡬ문μ νμ©νμ¬ μ€λ₯λ°μμ λλΉνλ€.
- κ°μ₯ μ μμ μΈ λ°©λ²μΌλ‘ λͺ¨λ μ€λ₯ μΌμ΄μ€μ λμνλ€.
- νλμ catch λΈλμμ switch ꡬ문μ μ¬μ©νμ¬ μ€λ₯λ₯Ό λΆλ₯ν΄λ³Έλ€. κ΅³μ΄ μμ κ²κ³Ό ν¬κ² λ€λ₯Ό κ²μ΄ μλ€.
- λ±ν μΌμ΄μ€λ³λ‘ μ€λ₯μ²λ¦¬ ν νμκ° μμΌλ©΄ catch ꡬ문 λ΄λΆλ₯Ό κ°λ΅νν΄λ 무방νλ€.
- μΌμ΄μ€λ³λ‘ μ€λ₯μ²λ¦¬ ν νμκ° μμΌλ©΄ do κ΅¬λ¬Έλ§ μ¨λ 무방νλ€.
do {
result = try machine.vend(numberOfItems: 4)
}
<<try? μ try!>>
1. try?
- λ³λμ μ€λ₯μ²λ¦¬ κ²°κ³Όλ₯Ό ν΅λ³΄λ°μ§ μκ³ μ€λ₯κ° λ°μνμΌλ©΄ κ²°κ³Όκ°μ nilλ‘ λλ €λ°μ μ μλ€.
- μ μλμ νμλ μ΅μ λ νμ μΌλ‘ μ μ λ°νκ°μ λλ € λ°λλ€.
- μ€λ₯κ° λ°μνμ§ μμ κ²μ΄λΌλ κ°λ ₯ν νμ μ κ°μ§ λ try!λ₯Ό μ¬μ©νλ©΄ μ μλμ νμ λ°λ‘ κ²°κ³Όκ°μ λλ €λ°λλ€.
- μ€λ₯κ° λ°μνλ©΄ λ°νμ μ€λ₯κ° λ°μνμ¬ μ ν리μΌμ΄μ λμμ΄ μ€μ§λλ€.
* λ μμ보기: μΆκ°μ μΌλ‘ λ μμ보면 μ’μ κ°λ
- rethrows
- defer
'π©π»βπ» > Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Swiftμ μν μ°Έμ‘° λ¬Έμ μ λν΄ (1) | 2021.03.29 |
---|---|
28. κ³ μ°¨ ν¨μ - iOS νλ‘κ·Έλλ°μ μν μ€μννΈ κΈ°μ΄ (0) | 2020.06.23 |
26. μ΅μ€ν μ - iOS νλ‘κ·Έλλ°μ μν μ€μννΈ κΈ°μ΄ (0) | 2020.06.23 |
25. νλ‘ν μ½ - iOS νλ‘κ·Έλλ°μ μν μ€μννΈ κΈ°μ΄ (0) | 2020.06.23 |
24. assert / guard - iOS νλ‘κ·Έλλ°μ μν μ€μννΈ κΈ°μ΄ (0) | 2020.06.22 |