在ios開發中使用 try 和 catch 來捕獲錯誤。 – iPhone手機開發技術文章 iPhone軟體開發教學課程

ios中很少用到try 和catch

簡單的來說,Apple雖然同時提供瞭錯誤處理(NSError)和異常處理(exception)兩種機制,但是Apple更加提倡開發者使用NSError來處理程序運行中可恢復的錯誤。而異常被推薦用來處理不可恢復的錯誤。

原因有幾個,在非gc情況下,exception容易造成內存管理問題(文檔有描述即使是arc下,也不是安全的);exception使用block造成額外的開銷,效率較低等等,另外這也的確是Cocoa開發者的習慣。

1,拋出錯誤的代碼

    //如果返回的報文是錯誤信息,則拋出錯誤  
       if([outParams count] <= 0)  
       {  
           [NSException raise:@"WebService error" format:@"%@", returnJson4SOAP];  
       }  

2,在調用中捕獲錯誤代碼

    //從soap 信息中解析出CusotmerDetail 對象  
        @try  
        {  
            customerDetail = [[[SoapRtnJsonParser alloc] init] parse2CustomerDtail:[returnSoapXML dataUsingEncoding:NSUTF8StringEncoding]];  
        }@catch (NSException * e) {  
            NSLog(@"Exception: %@", e);  
            UIAlertView * alert =  
            [[UIAlertView alloc]  
             initWithTitle:@"錯誤"  
             message: [[NSString alloc] initWithFormat:@"%@",e]  
             delegate:self  
             cancelButtonTitle:nil  
             otherButtonTitles:@"OK", nil];   
            [alert show];  
            [alert release];  
            return;  
        }  

發佈留言