iOS 利用异常 NSException 调试代码

可以用在代码的调试上:

-(instancetype)init{

    

    @throw [NSException exceptionWithName:@"Singleton" reason:@"Use [GloabData shareData]" userInfo:nil];

    

    return  nil;

}

或者:

 NSException * e = [[NSException alloc] initWithName:@"Singleton" reason:@"Use [GloabData shareData]" userInfo:nil];

 

    @throw e;

 

 

抛出了一个bug:

 

关于异常的处理:

 

        NSException* ex = [[NSException alloc] initWithName:@"ExceptionName"   // just for test                                        
     reason:@"XXX"
         userInfo:nil];
     CustomNSException* ex = [[CustomNSException alloc] initWithName:@"CustomNSExceptionName" // just for test reason:@"XXX" userInfo:nil];

@try { bool error = YES;  

         if (error) {  

         @throw ex;  

               }  

}

    @catch ( CustomNSException *exception ) {     
        NSLog(@"CustomNSException.name = %@" ,CustomNSException.name);
       NSLog(@"CustomNSException.reason = %@" , CustomNSException.reason);

UIAlertView* alert = [[UIAlertView alloc]   initWithTitle:CustomNSException.name  message:CustomNSException.reason                                         delegate:nil  cancelButtonTitle:nil   otherButtonTitles:nil];  

      [alert show]; 

}  

@catch ( NSException *exception ) {  

     NSLog(@"exception.name = %@" , exception.name);      

    NSLog(@"exception.reason = %@" , exception.reason);  

}  

@finally {  

        NSLog(@"@finally");  

  }

posted @ 2015-12-12 17:29  指间&流年  阅读(921)  评论(0编辑  收藏  举报