2011-11-28 12 views

Respuesta

20

Las aserciones se utilizan generalmente solo durante el desarrollo y se compilan fuera de la aplicación cuando están en modo de lanzamiento (esto está controlado por NS_BLOCK_ASSERTIONS). Las excepciones, por otro lado, pueden usarse en todo momento.

Cuando se lanza una excepción, retrocede en la cadena de llamadas, hasta que es capturada (y reportada, ignorada u otra excepción) o llega a la cima, en cuyo caso causará que la aplicación choque. Puede considerarse parte del contrato de un método de clase y debe documentarse para que la persona que llama pueda manejarlo correctamente.

Las aserciones son realmente un control de desarrollador de tiempo de ejecución que garantiza que algo (generalmente una variable de instancia) se encuentre en un estado determinado y si no es así, abort() para llamar la atención de los desarrolladores. Es un control de cordura del desarrollador comprobar que algo se encuentra en el estado que el desarrollador espera que sea.

+0

Gracias. Esto ayudará – Niraj

7

Las afirmaciones se utilizan para encontrar cosas que nunca deberían suceder bajo ninguna circunstancia si su código funciona de la manera que usted cree que debería ser. Si están sucediendo, hay un error en su código y desea saber al respecto, al menos si sucede durante la prueba. (La mayoría de las personas desactiva las afirmaciones en el código publicado.)

Por el contrario, se usan excepciones para encontrar cosas que han salido mal y sobre las que no tiene control. Por ejemplo, si su aplicación depende de un servidor de base de datos y ese servidor de base de datos no está disponible, eso podría generar una excepción en su código. (No cometa el error de usar excepciones para cosas como validación de entrada de usuario. Si se trata de flujo de programa regular, el usuario olvidó ingresar un campo o lo que sea, eso no es una excepción. Las excepciones deben ser excepcionales)

Cuestiones relacionadas