【问题标题】:Error Handling : Capture error objects in catch block错误处理:在 catch 块中捕获错误对象
【发布时间】:2016-01-11 20:07:53
【问题描述】:

我有以下错误模型。

enum MyErrorType: ErrorType
{
    case RequestFormationError(errorDomain : ARSErrorDomain)
    case NetworkError(errorDomain : ARSErrorDomain)

    case FileNameError(errorDomain : ARSErrorDomain)
    case FileNotFoundError(errorDomain : ARSErrorDomain)

    case ValidationError(errorDomain : ARSErrorDomain)
}

class MyErrorDomain: NSObject
{
    var errorMessage : String?
    //var errorCode : String?

    convenience init(errorMessage: String)
    {
        self.init()

        self.errorMessage = errorMessage
    }
}

每当代码中发生错误时,我都会将其传递给调用函数。我的问题是如何访问 catch 块中的 MyErrorDomain ?谁能告诉我语法?

【问题讨论】:

    标签: ios swift error-handling


    【解决方案1】:

    您需要使用以下语法:

    do {
        ....
    } catch MyErrorType.RequestFormationError(let errorDomain) {
        print(errorDomain)
    }
    

    它被描述为in docs

    【讨论】:

    • 如果不指定RequestFormationError,我可以通过创建一个超类或一些类似的实现来访问errorDomain。因为对于特定情况,我不担心errorType,而只担心errorDomain。
    • 我认为我需要将枚举移动到 errorDomain 中,以便对 errorDomain 进行通用访问。对吗?
    猜你喜欢
    • 2019-05-19
    • 2013-01-21
    • 1970-01-01
    • 2016-05-29
    • 2019-11-12
    • 1970-01-01
    • 2023-01-18
    • 2014-03-04
    • 1970-01-01
    相关资源
    最近更新 更多