¿Cómo manejar adecuadamente las excepciones NSFileHandle en Swift 2.0?

En primer lugar, soy nuevo en iOS y Swift y provengo de un entorno de programación Android / Java. Entonces, para mí, la idea de detectar una excepción de un intento de escribir en un archivo es una segunda naturaleza, en caso de falta de espacio, problemas de permisos de archivo o cualquier otra cosa que pueda sucederle a un archivo (y ha sucedido, en mi experiencia) . También entiendo que en Swift, las excepciones son diferentes de las de Android / Java, así que eso no es lo que estoy preguntando aquí.

Estoy intentando adjuntar a un archivo usando NSFileHandle, así:

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!)
}

Sin embargo, tanto elseekToEndOfFile()ywriteData() las funciones indican que lanzan algún tipo de excepción:

Este método genera una excepción si el descriptor de archivo está cerrado o no es válido, si el receptor representa un punto final de tubería o socket no conectado, si no queda espacio libre en el sistema de archivos o si se produce cualquier otro error de escritura. - Documentación de Apple parawriteData()

Entonces, ¿cuál es la forma correcta de manejar esto en Swift 2.0? He leido los enlacesManejo de errores en lenguaje rápido, excepciones try-catch en Swift, NSFileHandle writeData: manejo de excepciones, Manejo de excepciones de Swift 2.0yCómo atrapar una excepción en Swift, pero ninguno de ellos tiene una respuesta directa a mi pregunta. Leí algo sobre el uso de Objective-C en el código Swift, pero como soy nuevo en iOS, no sé qué es este método y parece que no puedo encontrarlo en ningún lado. También probé el nuevo Swift 2.0do-catch bloques, pero no reconocen que se está lanzando ningún tipo de error para los métodos NSFileHandle, probablemente porque la documentación de la función no tiene una palabra clave de lanzamiento.

Soy consciente de que podría dejar que la aplicación se bloquee si se queda sin espacio o lo que sea, pero dado que la aplicación posiblemente se lanzará a la tienda de aplicaciones más tarde, no quiero eso. Entonces, ¿cómo hago esto de la manera Swift 2.0?

EDITAR: Actualmente, este es un proyecto con solo código Swift, por lo que, aunque parece que hay una manera de hacerlo en Objective-C, no tengo idea de cómo combinar los dos.

Respuestas a la pregunta(3)

Su respuesta a la pregunta