आपको केवल objc_exception_throw
पर ब्रेकपॉइंट का उपयोग करना चाहिए। विधि -[NSException raise]
objc_exception_throw
पर कॉल करती है, इसलिए objc_exception_throw
-[NSException raise]
कवर सभी मामलों को शामिल करता है। दूसरी तरफ सही नहीं है: @throw
निर्देश objc_exception_throw
पर सीधे कॉल करने के लिए संकलित किया गया है। जबकि objc_exception_throw
पर एक ब्रेकपाइंट काम करेंगे,
- (void)throwAndCatch
{
@try {
NSException *exception = [[NSException alloc] initWithName:@"Test"
reason:@"test"
userInfo:nil];
@throw exception;
}
@catch (NSException *exception) {
NSLog(@"Caught");
}
}
जब -throwAndCatch
बुला, -[NSException raise]
पर एक ब्रेकपाइंट कोई प्रभाव नहीं है: यह विधि अंतर को दर्शाता है।
स्रोत
2012-06-19 13:13:11