2010-04-23 18 views
6

He estado leyendo sobre el manejo de excepciones en el Apple developer docs, pero me preguntaba por qué las excepciones de las operaciones estándar C no se detectan.Manejo de excepciones en Obj-C

E.g. el código siguiente aún bloquea la aplicación, sin capturar el div por cero. ¿El bloque @ try/@ catch solo capturará el código Obj-C?

@try { 
    int i = 10/0; 
} 
@catch (NSException * e) { 
    NSLog(@"Div by zero!"); 
} 
@finally { 
    // Nothing... 
} 

Respuesta

3

División por cero no es una excepción de tipo NSException. De hecho, tampoco es una "excepción" en términos de un lenguaje de programación. C no tiene excepciones en la misma forma que C++, Java, etc. Cuando se produce una división por 0 en C, el procesador "arroja" una "excepción" y el manejo de ese error ocurre en un nivel mucho más bajo.