Swift 错误未处理且未标有 try

Posted

技术标签:

【中文标题】Swift 错误未处理且未标有 try【英文标题】:Swift Error is not handled and not marked with try 【发布时间】:2015-10-24 12:20:06 【问题描述】:

自从我更新 Xcode 后,我目前遇到了那段代码的错误

!调用可以抛出,但没有标记'try'并且错误不是 处理过

   let soundURL = NSBundle.mainBundle().URLForResource("jump", withExtension: "caf")
            audioPlayer = AVAudioPlayer(contentsOfURL: soundURL!, fileTypeHint: nil)
            audioPlayer.numberOfLoops = -1
            audioPlayer.play()

【问题讨论】:

Issue with "try?" and AVAudioPlayer的可能重复 问题是这个答案对我的代码不起作用?我确实尝试过,但出现了几个错误 Error-Handling in Swift-Language的可能重复 【参考方案1】:

该方法现在是可抛出的,因此您可以这样处理它:

do 
    audioPlayer = try AVAudioPlayer(contentsOfURL: soundURL!, fileTypeHint: nil)
    audioPlayer.numberOfLoops = -1
    audioPlayer.play()
 catch 


【讨论】:

【参考方案2】:

使用 Swift 2,您应该处理异常。下面的代码应该可以解决您的问题:

do 
    audioPlayer = try AVAudioPlayer(contentsOfURL: soundURL!, fileTypeHint: nil)
 catch (_) 


【讨论】:

请发表反对投票的理由。我没有发布完整的代码,但肯定会在这里指出错误的原因。 这是一个正确答案,因为它修复了您遇到的错误。 确实,这是一个很好的答案,因为它展示了如何在不提供完整的插入式代码的情况下解决问题。 (已投票)。

以上是关于Swift 错误未处理且未标有 try的主要内容,如果未能解决你的问题,请参考以下文章

Swift 2.2 HealthKit - 调用可以抛出,但它没有标有“尝试”并且错误未处理

快捷键2:可以抛出呼叫,但未将其标记为“ try”,并且未处理错误

Swift 2.1 - 调用可以抛出,但它没有用'try'标记并且错误没有被处理

通过 try 块处理 Swift 2.2 错误

Swift 2:调用可以抛出,但它没有用'try'标记并且错误没有被处理

事务提交未提交且未引发错误