2012-06-04 6 views
6

के भीतर अपवादों को कैसे पकड़ें ब्लॉक कोड के भीतर अपवादों को पकड़ने का कोई उचित तरीका है?ब्लॉककोड (उद्देश्य सी)

void(^callback(int) = ^(int respond){ 
    [self DoSomethingWithRespond:respond]; //this throws an exception 
}; 

-(void)DoSomethingWithRespond:(int)respond{ 
    if(respond == 400){ 
    NSException *exception = [NSException 
           exceptionWithName:@"Failed" 
           reason:logMessage 
           userInfo:nil]; 
    @throw exception 
    } 
} 

कॉलबैक तरीकों एक और धागे से कहा जाता हो जाता है:

मैं निम्नलिखित कोड मिला है। यदि उत्तर 400 के बराबर है DoSomethingWithRespond विधि अपवाद फेंक देगा।

+1

ऑब्जेक्टिव-सी अपवाद में केवल असाधारण, यानी अप्रत्याशित परिस्थितियों, यानी प्रोग्रामर त्रुटियों के लिए उपयोग किया जाता है – hooleyhoop

+0

लेकिन मैं कि अपवाद, प्रोग्रामर त्रुटि या नहीं पकड़ने के लिए चाहते हैं .. :-) – Zillan

+0

यकीन है, मुझे पता है यह एक नहीं है जवाब। मैं आशा करता हूं कि आप एक प्राप्त करेंगे। जब तक आप जानते हैं कि आप जो कर रहे हैं उसे बिल्कुल भयानक कोड माना जाता है, मैं आपको शुभकामनाएं देता हूं। – hooleyhoop

उत्तर

4
@try { 
     <#statements#> 
    } 
    @catch (NSException *exception) { 
     <#handler#> 
    } 
    @finally { 
     <#statements#> 
    } 
+1

हे मेरे भगवान .. ऐसा लगता है कि यह एक ब्लॉक कोड के भीतर स्वतः पूर्ण नहीं है। लेकिन '@ ट्री-कैच' काम करता प्रतीत होता है ... धन्यवाद! – Zillan