gpt4 book ai didi

swift2 - 从这里抛出的 Swift 2.0 错误未得到处理

转载 作者:行者123 更新时间:2023-12-03 23:33:42 26 4
gpt4 key购买 nike

使用 Xcode 7 Beta 4 更新到 2.0

我有这个代码块

do
{
try AVAudioSession.sharedInstance().setActive(true)
} catch let err as NSError
{
println("Dim background error")
}

它给了我错误(在 try 行)

Errors thrown from here are not handled.



这是编译器错误还是我的语法中缺少某些内容?

我检查了文档,我的代码“看起来”正确。

最佳答案

哪些类型的错误可以AVAudioSession.sharedInstance().setActive(true)扔?
如果只能抛出NSError s,则在捕获错误时无需指定此项。你可以简单地写:

do {
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print("Dim background error")
}

如果您想使用 catch 中的错误-scope,您仍然可以访问它。 Swift 自动将抛出的错误绑定(bind)到 error ,可以使用:
catch {
// do something with `error`
}

如果方法抛出多种类型的错误,而您只想处理 NSError 的错误s,你可以有条件地绑定(bind)它们:
catch let specialError as NSError {
// do something with `specialError`
}

但是,您必须确保处理每个抛出的错误。所以假设该方法也可以抛出 RandomError (我现在才编出来的),你必须写:
catch let randomError as RandomError {
// do something with `randomError`
}

...除了 catchNSError .
或者您当然可以使用一般情况:
catch {
// do something with `error`
}

所以我假设您的问题可以通过删除 let err as NSError 来解决, 来自您的 catch -陈述。

关于swift2 - 从这里抛出的 Swift 2.0 错误未得到处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31818778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com