在编写方法或函数时,检查输入参数以响应任何可能的失败场景是一个好习惯。
例如:
-(void)insertNameInDictionary:(NSString*)nameString
{
[myDictionary setObject:nameString forKey:@"Name"];
}
这看起来还不错,但如果
nameString
是nil
,应用程序将崩溃。因此,我们可以检查它是否为nil
,对吧?我们还可以检查它是否为NSString而不是NSNumber,或者它是否响应我们的方法需要调用的方法。那么我的问题是:哪种方式最完整、最优雅地检查这些参数?
nameString
上放置nil
检查或进行@try...@catch()
块并在那里处理异常有什么问题?你可以认为你所有的参数都需要具有“完整和优雅”的验证检查。这似乎意味着你永远不会信任你的输入。我认为,当它们是程序外部的输入时,你需要以“完整和优雅”的方式防范你的输入,并专注于编写“完整和优雅”的业务逻辑,以确保你一开始就不使用错误的数据调用这些方法。 - Tim Reddy