由于我们幸运地有自Swift 2以来的异常,我想知道是否有办法抛出未经检查的异常。有时,使用throw-catch子句包含语句是没有意义的,因为错误仅在非常特定的情况下发生。如果不可能的话,我想知道在Swift中每次都不应该检查的错误是什么好的做法?我应该致电fatalError
使程序崩溃,还是应该提出NSException
,这显然不是Swifty的做法,因为我甚至无法在纯粹的Swift中找到NSException
我认为
感谢您的回答。
答案 0 :(得分:3)
如果你正在编写一个函数并想表明内部出错(例如前置条件失败),那么fatalError
和preconditionFailure
就是要调用的东西。使用这些与警卫的奖励点:
guard let myPrecondition = myOptionalPrecondition else { preconditionFailure("Precondition should never be optional here!") }
或
guard somePrecondition else { preconditionFailure() }