Swift - Result 타입이란?
기존 Error를 던지는 코드들에는 throws와 do-catch 문을 통해 예외를 처리해줘야하기 때문에 번거로운 경우가 많았지만, Result 타입을 통해 이 문제를 해결 가능함.
Apple Developer Document
열거형으로 선언되어 success, failure 두 가지 값을 가지고 있으며, 이 값을 통해 편리하게 성공, 실패를 처리할 수 있음.
사용 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import UIKit
// 사용자 정의 예외
enum CustomError: Error{
case exError1
case exError2
}
// Result 타입 반환
func customErrorThrowExample(value: Int) -> Result<Bool, CustomError>{
if value > 100 {
return Result.failure(CustomError.exError1) // 실패 반환
}
else if value < 0 {
return Result.failure(CustomError.exError2) // 실패 반환
}else{
return Result.success(true) // 성공 반환
}
}
// 함수 호출
let result = customErrorThrowExample(value: 101)
// Result 타입 분기 처리
switch result {
// 성공 시 처리
case .success(let result):
print(result)
// 실패 시 처리
case .failure(let error):
print(error)
}
결과
1
exError1
Result타입을 사용하면 비동기 콜백이나 네트워크 응답 처리 시try-catch없이 명확한 성공, 실패 흐름을 쉽게 처리할 수 있음.
This post is licensed under CC BY 4.0 by the author.
