8.3.4 错误处理的原则

8.3.4 错误处理的原则

苹果的设计理念是“鼓励编写安全、可读、易维护的代码”,在错误处理时,也推荐使用这一理念。任何可能抛出错误的函数需要使用throws关键字。同样的调用,所有可能抛出错误的函数要使用try,一来使用了关键字的地方,编译器会帮助开发者做处理,二来是代码维护者在阅读代码时也会知道这里可能会发生什么。

Swift中的错误抛出和其他面向对象的异常抛出(例如Java)还是有一些区别的。Swift中虽然使用了近似的关键字,但是Swift并不使用异常处理的机制来处理错误。Swift中如果一个函数声明是throws的,那么实际是这个函数返回正常声明的返回值,或者抛出一个满足Error协议的错误。

最后要注意的是,catch要准备做好遇上未知错误的处理。因为throws的函数并不需要告诉外界可能会抛出错误的集合,所以还是需要开发者做个类似于switch中default那样的默认方案,即catch后面什么类型的Error也不带,负责处理开发者未知的错误。