Swiftμμ μ€λ₯ μ²λ¦¬νλ λ°©λ²μ
1. μ΅μ λ
: μλͺ»λ μ²λ¦¬μ κ²°κ³Όλ μ€ν λμ€ μ€ν¨νμ λ μ€λ₯λ₯Ό λ°μμν€λ λμ nilμ λ°ν.
2. μλ¬μ²λ¦¬ ꡬ문
: λ°νκ° νμ μ΄λ μ½λμ νλ¦κ³Ό μκ΄ μμ΄ μ€λ₯λ₯Ό λμ§ μ μλ ꡬ문.
μλ¬μ²λ¦¬(Error Handlig)λ νλ‘κ·Έλ¨μ μλ¬ μ‘°κ±΄μμ μλ΅νκ³ λ³΅κ΅¬νλ νλ‘μΈμ€μ΄λ€.
μΌλΆ μμ μ νμ μ€ν μλ£νλ€λ 보μ₯μ΄ λμ§ μλλ€.
μ΅μ λμ κ°μ΄ μμμ λνλ΄λλ° μ¬μ©λλλ° μ¬μ©λμ§λ§ μμ μ΄ μ€ν¨ν κ²½μ° μλ¬ μμΈμ μ΄ν΄ν μ μλ€.
Swiftμμ μλ¬λ Error νλ‘ν μ½μ μ€μνλ νμ μ κ°μΌλ‘ ννλλ€.
μ΄ νλ‘ν μ½μ λΉμ΄μμΌλ©° μλ¬λ₯Ό μ²λ¦¬ν κ²μ λν΄ μ¬μ©λ μ μλ€.
μ΄κ±°νμ κ΄λ ¨λ μλ¬ μ‘°κ±΄μ κ·Έλ£Ήμ λͺ¨λΈλ§νλλ° μ ν©νμ¬ κ΄λ ¨λ κ°μ μ¬μ©νμ¬ μλ¬μ νΉμ±μ λν μΆκ° μ 보λ₯Ό μ λ¬ν μ μλ€.
Error νλ‘ν μ½μ μ±νν μ΄κ±°νμ μ¬μ©νλ©΄ λ€μν μ€λ₯ μν©μ μ μνκ³ μ΄λ₯Ό νμ©ν΄ μλ¬λ₯Ό κ΄λ¦¬ν μ μλ€.
1. μλ¬ μ μνκΈ°
enum VendingMachineError: Error {
case invalidSelecion //μνκΈ°μ μλ μν μ ν μ λ°μνλ μ€λ₯
case insufficientFunds(coinsNeeded: Int) //μ νν νλͺ©λ³΄λ€ κΈμ‘μ΄ λΆμ‘±ν μ λ°μνλ μ€λ₯. coinsNeededλΌλ μ°κ΄ κ°μ ν΅ν΄ λΆμ‘±ν κΈμ‘μ ν¨κ» μ λ¬ν μ μμ.
case outOfStock //μ νν μνμ μ¬κ³ κ° μμ μ λ°μνλ μ€λ₯
}
μλ¬κ° λ°μνλ©΄ μμμΉ λͺ»ν μΌμ΄ λ°μνμ¬ μ μμ μΈ νλ¦μ κ³μν μ μμμ λνλΌ μ μλ€.
throw ꡬ문μ μ¬μ©ν΄ μλ¬λ₯Ό λ°μ μν€κΈ°
μλμ μ½λλ μνκΈ°μ 5κ°μ μ½μΈμ΄ λ νμνλ€κ³ μλ¬ λ°μμν€λ ꡬ문
throw VendingMachineError.insufficientFunds(coinsNeeded: 5)
π Reference
https://bbiguduk.gitbook.io/swift/language-guide-1/error-handling
[Swfit] @unknown default / @frozen enum (0) | 2024.12.04 |
---|---|
[Swift] Type Aliases(νμ λ³μΉ) (0) | 2024.11.25 |
Alertκ³Ό λκΈ°/λΉλκΈ° κ°λ (0) | 2024.08.29 |
UITextFieldμ λΈλ¦¬κ²μ΄νΈ ν¨ν΄ (0) | 2024.08.28 |
[ Swift ] νλ‘ν μ½(protocol) (0) | 2024.08.25 |