objetivo c - iOS. ¿Cómo puedo detectar una excepción cuando otro código ya usa NSSetUncaughtExceptionHandler?
Quiero usar un controlador de excepciones global.
Llamar a applicationdidFinishLaunchingWithOptions esto:
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
Y use esto para manejar la excepción:
void uncaughtExceptionHandler(NSException *exception) {
// handling exception
}
Pero también uso sdk, que ya usa NSSetUncaughtExceptionHandler. Entonces mi método uncaughtExceptionHandler no ha llamado cuando ocurre una excepción.
Sé que solo puede haber un controlador para una aplicación. Pero necesito eso y sdk, y este código puede manejar excepciones a nivel global.
¿Tienes¿Tiene alguna idea de cómo puedo usar NSSetUncaughtExceptionHandler en este caso? ¿U otras ideas sobre cómo puedo manejar las excepciones a nivel global? Genial gracias.
------------Respuesta------------
Llame a installUncaughtExceptionHandler() después de que el SDK NSSetUncaughtExceptionHandler cubra el controlador. Entonces se llamará a su uncaughtExceptionHandler.
Más adelante, puede almacenar el controlador del SDK y llamarlo en su uncaughtExceptionHandler para que el SDK funcione en conjunto.
Código de ejemplo:
static NSUncaughtExceptionHandler *exceptionHandler = NULL;
typedef void (*sighandler_t)(int);
static sighandler_t sigHandler = NULL;
static void handleException(NSException *e)
{
//your code ...
//call the SDK handler
if (exceptionHandler) {
exceptionHandler(e);
}
}
static void handleSignal(int signal)
{
//your code ...
if (sigHandler) {
sigHandler(signal);
}
}
void installUncaughtExceptionHandler()
{
// store the SDK handler
exceptionHandler = NSGetUncaughtExceptionHandler();
NSSetUncaughtExceptionHandler(&handleException);
sigHandler = signal(SIGABRT, handleSignal);
signal(SIGILL, handleSignal);
signal(SIGSEGV, handleSignal);
signal(SIGFPE, handleSignal);
signal(SIGBUS, handleSignal);
signal(SIGPIPE, handleSignal);
}
Etiquetas: exception objective-c xcode ios
Artículos relacionados:
¿Cómo obtener datos de mi propia cuenta de Google Analytics usando claves de cuenta de servicio?
Código de nota: 1973 No se puede crear usuario, usuario, @, localhost,; ya existe, mysql
- Consulta MongoDB para devolver documentos que solo tienen claves entre un conjunto predefinido
- Dirija todo el tráfico de Internet desde mi aplicación voip de Android a mi propio servidor vpn
- algoritmo: ¿Encuentra la complejidad temporal de un elemento que no es ni kth máximo ni kth mínimo?
- c# - Recuperar solo cuentas habilitadas de Azure Active Directory
- Elimine un Jsonobject basado en algún valor clave de JsonArray android
- regex - ¿Cómo implementar la validación de javascript?
- diccionario - Python - Multiprocesamiento pool.map(): Los procesos no hacen nada
- asp.net mvc 4: haga clic en el botón Enviar para no guardar los datos de los cursos cuando elimine el curso por jquery
- mongodb - MapReduce en mongo db está tomando 0 entradas para datos grandes
- Extraiga texto de una cadena en php con expresiones regulares
- php: cómo solucionar "mysqli::real_connect(): la operación SSL falló" ¿error?
- PHP Google Sheets API - Permiso denegado
- La ejecución paralela de Postgresql 9.6 no funciona
- smarty - Prestashop agrega un tiempo de espera del producto
- salida de GROUP BY en SQL SERVER 2012
Artículos calientes
- medicina china para la bronquitis
- Diferencia entre infección de las vías respiratorias superiores y bronquitis
- ¿Qué causa la epididimitis?
- Criterios diagnósticos de cálculos renales
- ¿Qué medicamento la masturbación causa prostatitis?
- ¿Cuáles son los factores de padecer gota?
- Qué comer durante la convalecencia de una hemorragia cerebral
- que es el alzheimer
- Principales criterios diagnósticos de las bronquiectasias
- ¿Cuáles son las formas de prevenir y tratar la menstruación irregular en las mujeres?
- Síntomas de gota de ternera
- Saco gestacional de 5x4mm cuanto dura el embarazo
- La diferencia entre espinillas y espinillas de ácaros
- Por qué frotar con jengibre puede tratar la caída del cabello
- ¿Cuánto tiempo se puede vivir con insuficiencia hepática?