5 分钟速读之 Rust 权威指南(十五)
错误处理
rust 对可靠性的执着延伸到了错误处理领域,错误分为两大类:可恢复错误与不可恢复错误,可恢复错误比如文件未找到,一般需要将它们报告给用户并再次尝试进行操作。而不可恢复错误往往就是 bug 的另一种说法,比如尝试访问超出数组结尾的位置等。
可能有两个不太恰当的比喻,不可恢复的错误在 JS 中比如试图调用不存在的方法(window.non_existent_fn())时会报错,而可恢复的错误比如在数组中获取超出长度的索引时得到 undefined。
不可恢复错误与 panic!
在 JS 中我们使用 throw 关键字抛出一个错误,rust 也提供了一个特殊的 panic! 宏。程序会在 panic! 宏执行时打印出一段错误提示信息,立即清理内存占用,然后退出程序。
复制代码
程序报错时也会触发 panic:
复制代码
我们可以选择在报错后不进行任何清理内存占用,程序所使用过的内存只能由操作系统来进行回收,在 Cargo.toml 中配置:
复制代码
使用运行标识查看详细报错信息:
复制代码
本节先介绍到这里,由于可恢复的错误内容有点多,两节放到一起的话五分钟就看不完了^_^。
版权声明: 本文为 InfoQ 作者【码生笔谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/95fd4c1168c7b975c4ae0dbee】。文章转载请联系作者。
评论