2012-06-04 4 views
6

Gibt es eine geeignete Möglichkeit, Ausnahmen innerhalb des Blockcodes abzufangen?Abfangen von Ausnahmen innerhalb von BlockCode (Objective C)

Ich habe den folgenden Code:

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 
    } 
} 

Die Callback-Methoden von einem anderen Thread aufgerufen wird. Wenn die Antwort gleich 400 ist, löst die DoSomethingWithRespond-Methode eine Ausnahme aus.

+1

in Objective-C Ausnahmen verwendet werden, nur für außergewöhnliche, dh unvorhersehbare Umstände, also Programmierer Fehler – hooleyhoop

+0

Aber ich möchte, dass die Ausnahme, Programmierer Fehler oder nicht fangen .. :-) – Zillan

+0

sicher, ich weiß es nicht ist Antworten. Ich habe so upvolotiert, dass du hoffentlich eins bekommst. Solange Sie wissen, dass das, was Sie tun, als absolut schrecklicher Code gilt, wünsche ich Ihnen viel Glück. – hooleyhoop

Antwort

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

O mein Gott .. Scheint so, als ob es nicht innerhalb eines Blockcodes automatisch vervollständigt wird. Aber der '@try - catch' scheint zu funktionieren ... Danke! – Zillan