Doesn't need to be at this stage, would go for a more explicit handling of `err`, like:

``` go
func (s *server) serve(...) {
        var err error
	defer func() {
                // log depending on err
	}()

	c, err := NewClient(...)
	if err != nil {
		return
	}

	err = c.Serve()
}
```