什么时候应该使用panic/recover?

June 28, 2013 · One minute read

Effective Go已经给出了很明确的建议,如果能够大幅度简化错误处理逻辑的时候,可以使用panic/recover,当且仅当针对内部API来使用。在Lucene 4.3的DataInput中,大多数读取基本类型的方法都会使用到readByte和readBytes方法。如果使用错误代码返回的方式,那就会看到大量重复的错误代码判断的逻辑,因为很多方法都会多次调用readByte方法。换成panic/recover以后,代码简单不少。有个小诀窍就是使用一个公共的错误处理方法,比如说

然后在调用的方法中只要加一行就好了