在Swift中抛出多个异常

在Swift中抛出多个异常,swift,exception,error-handling,Swift,Exception,Error Handling,一个函数如何抛出多个异常? 例如,在Java中是这样的: private Int f(Int data, boolean e) throws AException, BException, CException {... 谢谢该语言不支持这一点,很可能是因为它被认为是一种反模式。但是,只要有一点独创性,您就可以得到一个包含一系列错误的错误案例: enum MyError: Error { case general case notFound

一个函数如何抛出多个异常? 例如,在Java中是这样的:

private Int f(Int data, boolean e)
        throws AException, BException,
        CException {...

谢谢

该语言不支持这一点,很可能是因为它被认为是一种反模式。但是,只要有一点独创性,您就可以得到一个包含一系列错误的错误案例:

enum MyError: Error {
    case general
    case notFound
    case invalid
    case multiple([MyError])
}

func test() throws {
    throw MyError.multiple([.general, .invalid])
}

你看过Swift参考资料中的“错误处理”一章吗?在Swift中,它只是
func f(…)抛出
,而您不(也不能!)指定抛出的错误。我认为您可以这样指定:func f()抛出->您的异常类型,但只有一个异常类型,我想知道如何抛出多个异常。不,您不能这样指定。你从哪里得到的?@user23你指定的是函数的返回类型,它与函数可以抛出的可能错误类型无关。在Swift中,抛出函数可以抛出符合
error
协议的任何错误类型–无法指定可以抛出的特定错误类型。关于Swift为什么不支持在此处指定函数可以抛出的错误类型,有一个有趣的讨论:这很聪明。你认为他们为什么认为这是反模式?