Emcee

Форк
0
/
RequestSenderError.swift 
38 строк · 1.5 Кб
1
import Foundation
2

3
public enum RequestSenderError: Error, CustomStringConvertible {
4
    case noData
5
    case unexpectedResponse(Data)
6
    case communicationError(Error)
7
    case parseError(Error, Data)
8
    case sessionIsClosed(URL)
9
    case cannotIssueRequest(Error)
10
    case credentialsNotUTF8
11
    case badStatusCode(Int, body: Data?)
12
    
13
    public var description: String {
14
        switch self {
15
        case .noData:
16
            return "Unexpected response: No data received"
17
        case .unexpectedResponse(let data):
18
            let string = String(data: data, encoding: .utf8) ?? "\(data.count) bytes"
19
            return "Unexpected response: \(string)"
20
        case .communicationError(let underlyingError):
21
            return "Response had an error: \(underlyingError)"
22
        case .parseError(let error, let data):
23
            let string = String(data: data, encoding: .utf8) ?? "\(data.count) bytes"
24
            return "Failed to parse response: \(error). Data: \(string)"
25
        case .sessionIsClosed(let url):
26
            return "Cannot send request to '\(url)' because session is closed"
27
        case .cannotIssueRequest(let error):
28
            return "Failed to issue request: \(error)"
29
        case .credentialsNotUTF8:
30
            return "Use UTF8 ecnoding for request credentials"
31
        case .badStatusCode(let code, let body):
32
            if let body = body, let bodyString = String(data: body, encoding: .utf8) {
33
                return "Bad status code \(code), body: \(bodyString)"
34
            }
35
            return "Bad status code: \(code)"
36
        }
37
    }
38
}
39

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.