En Cocoa, ¿cuándo debería usar NSAssert, NSException, NSError?Objective-C: Assertion vs. Exception vs. Error
Aquí es lo que he estado pensando:
NSAssert - Al crear un programa cliente que se utiliza para el propio beneficio programadores de dobles reglas de verificación, convenciones, suposiciones o pre-condiciones y post-condiciones?
NSException - Al crear una biblioteca de terceros para el beneficio de otros programadores que utilizan la biblioteca, para que sepan de inmediato cuando una entrada no es válida?
NSError - Cuando la interfaz con un sistema externo para obtener datos como un archivo, base de datos o servicio web que no está garantizado que me diera un resultado?
Para expresarlo con más fuerza, una ** NSException ** no se debe usar para indicar un error recuperable. – bbum
En otras palabras: Obj-C's NSException == Clase de error de Java, y Obj-C's NSError == Clase de excepción de Java. ¡Hurra por consistencia en términos! – Tustin2121
En realidad, NSAssert se compilará en su código si no agrega NS_BLOCK_ASSERTIONS en sus archivos de prefijos precompilados. Lea la [respuesta] (http://stackoverflow.com/a/25660769/1764735) a continuación (solo obtenga 50 para recomendar ahora :) – likid1412