Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/julian-chu/advanced-go-training-homework


https://github.com/julian-chu/advanced-go-training-homework

Last synced: 19 days ago
JSON representation

Awesome Lists containing this project

README

        

# advanced-go-training-homework

## week2
Q: When getting sql.ErrNoRows, should we wrap it and return?
my answer is no, please see comment below.
```go
err := s.db.QueryRow(`select user_id from user where email = $1`, email).Scan(&user.ID)
if err !=nil{
// sql.ErrorNoRows means "user not found" in business logic level.
// don't return sql.ErrorNoRows or it wrapped error because it's not a real database error
// recommend to use custom error for business logic level
if err == sql.ErrNoRows{
return User{}, ErrNotFound
}
return User{}, err
}
return user, nil
```