【问题标题】:Properly handling errors in init [duplicate]正确处理init中的错误[重复]
【发布时间】:2014-02-24 02:49:32
【问题描述】:

我应该如何正确处理在创建期间执行对象的各种配置的初始化程序中的错误?

抛出异常会不会是不好的?返回 NSError 呢?

【问题讨论】:

    标签: objective-c


    【解决方案1】:

    看看您的init 方法如何返回类型id 或最近的instancetype,您无法返回NSError *。例外似乎是适合您的情况的方法。有了这些,您有两个选择。

    选择 1 抛出异常。在这种情况下,如果您发现有问题,只需抛出异常即可。

    - (id)init {
        ...
        ...
        if (shouldThrowException) 
            NSException *myException = [NSException new]
            ... populate this exception with details ...
            @throw(myException)
    }
    

    选择 2 捕获异常。在这种情况下,如果您不在乎出了什么问题,您可以忽略任何引发的异常。

    - (id)init {
        ...
        ...
        @try {
            // some dangerous thing
        } @catch (NSException *e) {}
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-31
      • 2016-08-01
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 2011-08-27
      相关资源
      最近更新 更多