2010-04-23 4 views
6

Apple developer docs에서 예외 처리에 대해 읽었지만 표준 C 연산의 예외가 잡히지 않는 이유가 궁금합니다.Obj-C의 예외 처리

예. 아래의 코드는 div를 0으로 잡지 않고 애플리케이션을 계속 충돌시킵니다. @ try/@ catch 블록 만 Obj-C 코드를 catch합니까?

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

답변

3

0으로 나눈 값은 NSException의 예외는 아닙니다. 사실 프로그래밍 언어 측면에서 보면 예외적 인 것은 아닙니다. C 자체에는 C++, Java 등과 같은 예외가 없습니다. C에서 0으로 나누기가 발생하면 프로세서에서 "예외"를 "throw"하고 해당 오류에 대한 처리는 훨씬 낮은 수준에서 발생합니다.