Swift中的异常处理

1、错误和异常处理
2、断言
3、fatalError

1、错误和异常处理
  • 在方法后面加throws关键字表示这个方法在调用的过程中可能会抛出异常,同时这个方法也可以有返回值,返回值类型写在throws关键字后面。
  • 在调用含有关键字throws的方法时,需要在调用方法的语句前面加上try,然后通过catch捕获异常,可以有多个catch分支,catch语句实质上是在进行模式匹配。
  • try语句包含在do语句中。
  • 异常只是一个同步方法专用的处理机制,Cocoa框架里对于异步API出错时,保留了原来的NSError机制。
  • try可以接!表示强制执行,这代表你确定知道这次调用不会抛出异常。如果在调用中出现了异常的话,你的程序将会奔溃,这和我们在对Optional值用!进行强制解包时的行为是一致的。另外,我们也可以在try后面加上?来进行尝试性的运行。try?会返回一个Optional值:如果运行成功,没有抛出错误的话,它会包含这条语句的返回值,否则将为nil。
  • 值得一提的是,在一个可以throw的方法里,我们永远不应该返回一个Optinal的值。你在要throws另一个throws时,应该将前者改为rethrows。
2、断言
  • assert(条件,条件不满足时触发断言奔溃时的提示内容)默认情况下断言在Debug的情况下开启,在Release的情况下被禁用,但是可以在对应target的Build Settings中,在Swift Compiler - Custom Flags中的Other Swift Flags中添加-assert-config Debug来强制启动断言,或者-assert-config Release来强制禁用断言。
3、fatalError
  • fatalError(描述一下是什么原因导致致命错误的发生)
  • 关于语法,唯一需要解释的是@noreturn,这表示调用这个方法的话可以不再需要返回值,因为程序整个都将终止。
  • fatalError常用语提示“这个方法必须在子类中被重写”
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容