分母为0的情况,异常机制来处理
main方法
//==============================================
DenominatorNotZeroException.h
#import <Foundation/Foundation.h>
@interface DenominatorNotZeroException :NSException
@end
//==============================================
DenominatorNotZeroException.m
#import "DenominatorNotZeroException.h"
@implementation DenominatorNotZeroException
@end
//==============================================
//改写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");
}
}
本文介绍了一个Objective-C中自定义异常DenominatorNotZeroException的实现,用于处理分数类Fraction中分母为0的情况。通过异常抛出和捕获机制确保了程序的健壮性。
1万+

被折叠的 条评论
为什么被折叠?



