コンテンツにスキップ

エラーハンドリング

SDKは以下のエラータイプを提供します:

enum SDKError: Error {
case networkError(Error)
case authenticationError
case apiError(code: Int, message: String)
case unknownError
var localizedDescription: String {
switch self {
case .networkError(let error):
return "Network error: \(error.localizedDescription)"
case .authenticationError:
return "Authentication failed"
case .apiError(let code, let message):
return "API error (\(code)): \(message)"
case .unknownError:
return "An unknown error occurred"
}
}
}
YourSDK.shared.performOperation { result in
switch result {
case .success(let data):
// 成功処理
self.handleSuccess(data)
case .failure(let error):
// エラー処理
if let sdkError = error as? SDKError {
switch sdkError {
case .networkError:
self.showRetryDialog()
case .authenticationError:
self.navigateToLogin()
case .apiError(let code, _):
if code == 404 {
self.showNotFoundError()
} else {
self.showGenericError()
}
case .unknownError:
self.logError(error)
}
}
}
}