[swift] 연산자를 정의하여 에러 처리하는 방법
에러 처리를 위해서 Error 프로토콜을 채택한 열거형을 정의합니다.
enum CustomError: Error {
case outOfBounds
case invalidInput
}
이제 연산자를 오버로딩하여 해당 연산자가 에러를 처리하도록 구현합니다.
postfix operator ~!
postfix func ~! (result: Result<Int, Error>) throws -> Int {
switch result {
case .success(let value):
return value
case .failure(let error):
throw error
}
}
이제 해당 연산자를 사용하여 에러 처리를 수행할 수 있습니다.
func doSomething() -> Result<Int, Error> {
let value = 10
if value > 5 {
return .success(value)
} else {
return .failure(CustomError.outOfBounds)
}
}
do {
let result = try doSomething()~!
// 에러가 발생하지 않으면 이후 로직을 수행합니다.
} catch {
// 에러가 발생했을 때 처리하는 로직을 작성합니다.
}
이제 연산자를 통해 정의한 에러 처리 방법을 사용하여 에러를 처리할 수 있습니다.