【发布时间】:2012-05-11 04:06:21
【问题描述】:
我有这个方法:
+ (MHTwitterParser*)createParser:(NSString*)format {
if ([format compare:@"json"] == NSOrderedSame) {
return [[MHJsonTwitterParser alloc] init];
}
[NSException raise:@"Unknown format" format:@"Unknown format of parser"];
}
编译器抱怨:
Control may reach end of non-void function
这只是一个警告,但没关系。
对此的明显解决方法是在[NSException raise: ... 之后添加例如return nil;。
但是,我认为它是不需要的(甚至会误导读者),因为抛出了异常,所以“控制可能到达非空函数的结尾”是不正确的。还是我错过了什么……?仅仅是编译器的缺陷还是有一些相当大的原因?
编译器是Apple LLVM compiler 3.1
【问题讨论】:
-
这只是一个对象上的方法,如果我愿意,我可以调整该方法以不引发异常,然后我的程序将到达非 void 函数的末尾......我确定在那里还有其他更有用的理由
-
@Paul.s 谢谢保罗。这是有道理的,这是有效的观点。我很好奇是否有人会提出其他解释。
标签: objective-c exception nsexception