MENU

[FAQ]为什么Go没有异常处理?

November 7, 2020 • Go FAQ

我们相信用 try-catch-finally 习语那样的控制结构连接成的异常, 其结果就是令人费解的代码。它往往也会怂恿程序员标注太多普通的错误, 诸如打开文件失败之类的作为异常。
Go采用了一种不同的方法。对于朴素的错误处理,Go的多值返回使错误易于报告而无需重载返回值。 一个典型的错误类型,配合Go的其它特性, 使错误处理变得愉快而与众不同。
Go也拥有内建函数的配合来标记出真正的异常状况并从中恢复。该恢复机制只会在函数的错误状态解除之后, 作为它的一部分执行,这足以处理灾难而无需格外的控制结构。如果使用得当,就能产生清晰的错误处理代码。
详情见Defer、Panic、与Recover一文。

ArchivesQR Code
QR Code for this page
Tipping QR Code