当前位置: 首页 > 面试题库 >

在Swift中转发错误

芮岳
2023-03-14
问题内容

是否有更好的解决方案将Swift错误从一个函数转发到另一个函数?

此刻,我正在这样做:

enum Error:ErrorType{

    case Error1
    case Error2
}

func func1()throws{
     do{
         try func2()

        }catch Error.Error1{
            throw Error.Error1

        }catch Error.Error2{
            throw Error.Error2
        }
}

func func2()throws{
     // proof something
     throw Error.Error1
}

因此,要转发错误,我需要捕获所有错误并再次抛出它们。

有更好的解决方案吗?


问题答案:

是的:不要将其包装在do … catch块中。

func func2() throws{
     // proof something
     throw Error.Error1
}

func func1()throws{
     try func2()
}


 类似资料:
  • 问题内容: 我是Swift的新手,当我遇到转义的闭包时,我正在阅读手册。我根本没有得到手册的描述。有人可以简单地向我解释一下Swift中的转义闭包是什么。 问题答案: 考虑此类: 将传入的闭包分配给类中的属性。 现在是另一个类: 如果我调用,则闭包将存储在的实例中。由于是在闭包中捕获的,因此的实例还将对其具有很强的引用性。 基本上,这是逃脱的闭包的例子! 您可能想知道,“什么?那么封闭从何处逃脱到

  • 我正面临使用Zuul和Ribbon的问题。我也在微服务注册中心使用尤里卡。 null 当我启动我的微服务生态系统并尝试使用ribbon-service API(zuulservice:8761/ribbon-service/)时,我得到以下错误: com.netflix.zuul.exception.zuulException:org.springframework.cloud.netflix.z

  • 问题内容: XCode 6中的此代码没有错误,但是在XCode 7(Swift 2)中发生了此错误: 方法不会覆盖其超类中的任何方法 删除单词时,发生此错误: 方法’的touchesBegan( ::) withEvent’与目标C选择’的touchesBegan:withEvent:方法’与方法冲突’的touchesBegan( :从超类的UIResponder’具有相同的目标C选择withEv

  • 我正在将当前日期转换为 GMT/UTC 日期字符串。但每次它都会给我错误的日期。 我今天的日期是。您可以参考下图。 以下是我的代码: 我得到的回报是你也可以签入图像 - 。我已经尝试了所有格式,但没有任何运气。任何人都可以建议它在哪里出错?

  • 问题内容: 我正在尝试找出如何在Swift中将转换为。 我想出一种解决方法,但是我很想弄清楚如何在Swift中做到这一点。 问题答案: 转换为: 而另一种方式-转换为: 或者,如果您使用的是Swift 2或3:

  • 问题内容: 我正在尝试转换从UITextField中获取的数字(我认为这些数字实际上是字符串),并将其转换为Float,因此我可以将它们相乘。 我有两个声明如下: 当用户按下UIButton时,我想计算用户赚取的工资,但是我不能,因为我需要先将其转换为浮动工资,然后才能使用它们。 我知道如何通过执行以下操作将它们转换为整数: 但是,我不知道如何将它们转换为浮点数。 问题答案: 迅捷2.0+ 现在,