I\'m using Xcode 7 beta and after migrating to Swift 2 I experienced some issues with this line of code:
let recorder = AVAudioRecorder(URL: soundFileURL, settin
If you know that your function call will not throw an exception, you can call the throwing function with try!
to disable error propagation. Note that this will throw a runtime exception if an error is actually thrown.
let recorder = try! AVAudioRecorder(URL: soundFileURL, settings: recordSettings as! [String : AnyObject])
Source: Apple Error Handling documentation (Disabling Error Propagation)
There are 3 ways that you can use to solve this problem.
Using try?
// notice that it returns AVAudioRecorder?
if let recorder = try? AVAudioRecorder(URL: soundFileURL, settings: recordSettings) {
// your code here to use the recorder
}
Using try!
// this is implicitly unwrapped and can crash if there is problem with soundFileURL or recordSettings
let recorder = try! AVAudioRecorder(URL: soundFileURL, settings: recordSettings)
try / catch
// The best way to do is to handle the error gracefully using try / catch
do {
let recorder = try AVAudioRecorder(URL: soundFileURL, settings: recordSettings)
} catch {
print("Error occurred \(error)")
}