cari

Rumah  >  Soal Jawab  >  teks badan

objective-c - NSException与NSError区别?

NSException与NSError在使用中有哪些区别?

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    
    @autoreleasepool {
        NSException* ex = [[NSException alloc]initWithName:@"MyException"  
                                                    reason:@"b==0"   
                                                  userInfo:nil];  
        
        @try   
        {  
            int b = 0;   
            switch (b)    
            {  
                case 0:  
                    @throw(ex);//b=0,则抛出异常;  
                    break;  
                default:  
                    break;  
            }  
        }  
        @catch (NSException *exception)//捕获抛出的异常   
        {  
            NSLog(@"exception.name= %@" ,exception.name);
            NSLog(@"exception.reason= %@" ,exception.reason);
            NSLog(@"b==0 Exception!");  
        }  
        @finally   
        {  
            NSLog(@"finally!");  
        }  
        [ex release];  
        
    }
    return 0;
}

https://developer.apple.com/library/m...

https://developer.apple.com/library/m...

怪我咯怪我咯2765 hari yang lalu459

membalas semua(1)saya akan balas

  • 高洛峰

    高洛峰2017-04-21 11:17:57

    Pengecualian dan kesilapan adalah dua perkara yang sama sekali berbeza. Jika pengecualian dilemparkan tetapi anda tidak menangkapnya, ia akan ranap Tetapi jika ralat dikembalikan, anda boleh melakukan apa sahaja yang anda mahukan kepada dunia luar. Ia hanya memberitahu anda bahawa terdapat ralat dalam panggilan ini.

    balas
    0
  • Batalbalas