7-3中对ListenAndServe返回值是否为nil的判断

来源:8-3 服务器统一出错处理

西伯利亚鼯鼠

2018-02-06

文档上说 ListenAndServe always returns a non-nil error

请问老师有什么特殊考虑吗?

一般在写server的时候,这句需要判断吗?

一般对这种文档上说返回non-nil error的,需要判断吗?

谢谢~

写回答

1回答

ccmouse

2018-02-06

如果正常的话,这行代码不会return,而是起一个server,然后在那里不断地等连接来服务客户。所以任何return的情况都是有错,才有了文档里说的always returns a non-nil error。

这句还是要判断的,因为起server会出错。最常见的就是端口已经被占的情况,需要打出来给用户看。

文档里说log.Fatal(http.ListenAndServe(...)),作用是打出来并强制退出,那样写的话会比panic少写点代码,并且不会给人机会recover,更加暴力。两种处理方法都可以。

这种永远return non-nil error应该不是一般的情况。见到的话还是遵循这个函数的设计文档来处理。

1
1
西伯利亚鼯鼠
幸好问了一下,原来我完全理解错了。非常感谢老师!
2018-02-06
共1条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程