사용자의 로그 파일에 로그 할 수 있도록 Mac 응용 프로그램에서 예외를 잡으려고합니다.잡히지 않은 예외 처리기가
void uncaughtExceptionHandler(NSException *exception) {
NSLog(@"It Works!");
}
그리고 나는이처럼 내 -applicationDidFinishLaunching:
방법을 설정 해요 : :이 같은 예외 처리기를 구현하고있어
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
가 그럼 난 이렇게 그것을 테스트 예외가 발생 :
[[NSArray arrayWithObject:@"object"] objectAtIndex:1];
예외가 콘솔에 기록되지만 예외 핸들러가 호출되지 않습니다.
아이디어가 있으십니까?
나는 그것을 시도했지만 아직 예외를 잡지 못하고있다. '-reportException :'결코 호출되지 않습니다. 예외가'-applicationDidFinishLaunching :'에서 발생했다면 호출되어서는 안된다. 메인 스레드에서 실행되지 않습니까? – edc1591
예,'-applicationDidFinishLaunching :'이 메인 스레드에서 호출됩니다. 'NSApplication' 서브 클래스를 사용하고 있습니까? 'NSPrincipalClass' 키의'Info.plist'에 클래스 이름을 지정해야합니다. –
예, 확신합니다. '[NSApp class];는 내 서브 클래스를 반환합니다. – edc1591