본문 바로가기

iOS/Swift

Swift Day_09

예외 처리

 

import SwiftUI

 

struct Exception: View {

    

    @State var inputNumber = ""

    @State var resultNumber: Float = 0

    

    var body: some View {

        

        VStack{

            TextField("나눌 숫자를 입력해주세요", text: $inputNumber)

        

            Text("결과 : \(resultNumber)")

            Button{

                

                do{ //에러가 발생될 부분 ( 받는 부분 )

                    try resultNumber = devideTen( with: (Float(inputNumber) ?? 1.0) )

                }catch DevideError.devideByZero {

                    print("0으로 나누기 시도")

                    resultNumber = -99 //예외 처리

                }catch{

                    print(error.localizedDescription)

                }

                

            }label: {

                Text("나누기")

            }

        }

    } // body

    

    // 에러를 던지는 부분

    func devideTen(with inputNumber: Float) throws -> Float {

        var result: Float = 0

        if inputNumber == 0 {

            throw DevideError.devideByZero

        }else {

            result = 10 / inputNumber

        }

        

        return result

    } // func devideTen

    

}// struct Exception

 

// 에러 정의 된 부분

enum DevideError: Error{

    case devideByZero

}

 

#Preview {

    Exception()

}

'iOS > Swift' 카테고리의 다른 글

Swift Day_11  (0) 2024.07.06
Switft Day_10  (0) 2024.07.06
Swift Day_08  (0) 2024.07.05
Swift Day_07  (2) 2024.07.05
Swift Day_06  (0) 2024.07.05