//改写Fraction.m -(void)setDenominator:(int)d{ if(d==0){ NSException e* = [DenominatorNotZeroException exceptionWithName:@"DenominatorNotZeroException" reason:@"The denominator is not 0!" userInfo:nil]; @throw e; } denominator = d; } -(void)setNumerator:(int)n andDenominator:(int) d{ if(d==0){ NSException e* = [DenominatorNotZeroException exceptionWithName:@"DenominatorNotZeroException" reason:@"The denominator is not 0!" userInfo:nil]; @throw e; } numerator = n; main方法
int main(int argc,const char * argv[]){ @try{ Fraction *frac = [[Fraction alloc] initWithNumerator:3 andDenominator:0]; }@catch(DenominatorNotZeroException *dne){ NSLog(@"%s\n",[[dne reason] cString]); }@catch(NSException *e){ NSLog(@"%s\n",[[e name] cString]); }@finally{ NSLog(@"finally run"); } }