unreachable try thrown example errors catch because are exception try-catch assert swift

exception - thrown - try catch swift 4



¿Hay alguna manera de poder captar aserciones en Swift? (3)

Como mencionó, las afirmaciones bloquearán su aplicación en la depuración o la producción. No están diseñados para funcionar como excepciones Java / C #. Su único propósito real es:

Use una afirmación siempre que una condición tenga el potencial de ser falsa, pero definitivamente debe ser cierta para que su código continúe su ejecución. ... en situaciones donde las condiciones no válidas son posibles, una afirmación es una manera efectiva de garantizar que dichas condiciones se destacan y se detectan durante el desarrollo, antes de que se publique su aplicación.

Ya que puede usar las clases de Cocoa en Swift, aún puede usar NSException para cosas excepcionales que su código puede manejar.

Parece que Swift no tiene excepciones similares a C # / Java y en su lugar usa aserciones. Sin embargo, el libro dice que en el entorno de producción, instantáneamente bloquean la aplicación. ¿No hay una manera de evitarlo? ¿Qué pasa con las pruebas unitarias? ¿Cómo puedo probar que una función determinada afirma que obtiene un valor de entrada correcto?


De los libros de Apple, el lenguaje de programación Swift parece que los errores deberían manejarse usando enum.

Aquí hay un ejemplo del libro.

enum ServerResponse { case Result(String, String) case Error(String) } let success = ServerResponse.Result("6:00 am", "8:09 pm") let failure = ServerResponse.Error("Out of cheese.") switch success { case let .Result(sunrise, sunset): let serverResponse = "Sunrise is at /(sunrise) and sunset is at /(sunset)." case let .Error(error): let serverResponse = "Failure... /(error)" }

De: Apple Inc. "El lenguaje de programación Swift". IBooks. https://itun.es/br/jEUH0.l

Para errores inesperados, debe usar NSException como señala lfalin