Как правильно обрабатывать исключения NSFileHandle в Swift 2.0?

Прежде всего, я новичок в iOS и Swift и пришел с опытом программирования на Android / Java. Так что для меня идея поймать исключение из попытки записи в файл является второй натурой, в случае недостатка места, проблем с правами доступа к файлу или чего-либо еще, что может случиться с файлом (и произошло, по моему опыту) , Я также понимаю, что в Swift исключения отличаются от Android / Java, поэтому я не об этом.

Я пытаюсь добавить файл с помощью NSFileHandle, например так:

let fileHandle: NSFileHandle? = NSFileHandle(forUpdatingAtPath: filename)
if fileHandle == nil {
    //print message showing failure
} else {
    let fileString = "print me to file"
    let data = fileString.dataUsingEncoding(NSUTF8StringEncoding)
    fileHandle?.seekToEndOfFile() 
    fileHandle?.writeData(data!)
}

Тем не менее, обаseekToEndOfFile(), а такжеwriteData() функции указывают, что они выдают какое-то исключение:

Этот метод создает исключение, если дескриптор файла закрыт или недействителен, если получатель представляет неподключенную конечную точку канала или сокета, если в файловой системе не осталось свободного места или если произошла какая-либо другая ошибка записи. - Документация Apple дляwriteData()

Итак, как правильно обращаться с этим в Swift 2.0? Я прочитал ссылкиОбработка ошибок в Swift-Language, исключения try-catch в Swift, NSFileHandle writeData: обработка исключений, Swift 2.0 обработка исключений, а такжеКак поймать исключение в Swift, но ни один из них не имеет прямого ответа на мой вопрос. Я читал кое-что об использовании Objective-C в коде Swift, но, поскольку я новичок в iOS, я не знаю, что это за метод, и не могу найти его нигде. Я также попробовал новый Swift 2.0do-catch блоки, но они не распознают, что для методов NSFileHandle выдается ошибка любого типа, скорее всего, поскольку в документации по функции нет ключевого слова throw.

Я знаю, что могу просто позволить приложению аварийно завершить работу, если ему не хватает места или что-то в этом роде, но, поскольку приложение, возможно, будет выпущено в магазине приложений позже, я этого не хочу. Итак, как мне это сделать в Swift 2.0?

РЕДАКТИРОВАТЬ: В настоящее время это проект только с кодом Swift, поэтому, хотя кажется, что в Objective-C есть способ сделать это, я понятия не имею, как их смешать.

Ответы на вопрос(3)

Ваш ответ на вопрос