2010-01-20 22 views
8

Estoy tratando de hacer un controlador de error general para una aplicación de iPhone que lleva al usuario a una pantalla de recuperación cada vez que se arroja un error general en la aplicación sin poner un bloque try/catch alrededor de cada método En la aplicacion.Alternativa a NSSetUncaughtExceptionHandler en iPhone

El uso de NSSetUncaughtExceptionHandler no funciona porque la aplicación finaliza después de ejecutar el controlador.

¿Hay alguna manera de cambiar este comportamiento o utilizar cualquier otro controlador que detecte excepciones en general y que no provoque que la aplicación salga después?

Y por favor, no hay respuestas sobre si es una buena o mala idea.

+0

También estoy siguiendo de la misma manera que intentar mantener bloques de captura en todos los métodos que parece no ser una idea genial. cómo resolvió esto / – siva

Respuesta

11

El póster original probablemente ya haya resuelto su problema. Sin embargo, para cualquiera que se encuentre con esto en el futuro ...

Matt Gallagher escribió un excelente post para atrapar excepciones y señales no controladas unos meses después de que se publicó esta pregunta. Encuentro que es mucho más informativo que el answer mencionado anteriormente por Scott.

En particular, el post de Matt describe la forma de intentar una recuperación (en su caso) que permite su aplicación a seguir funcionando, e incluso muestra una UIAlertView con información de error si quiere (pista: se trata de la creación de un nuevo bucle de ejecución)

2

Esto fue respondido here. Puede leer más sobre la cadena de respuesta y detectar las excepciones here. La escritura desde 1 es realmente buena y explica cómo lidiar con lo que está haciendo.