Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "database/sql"
- "fmt"
- "log"
- "reflect"
- "strconv"
- "github.com/lib/pq"
- )
- const (
- psqlBusinessError = "50001"
- psqlBusinessErrorWithLogging = "50002"
- psqlVersionControlError = "50003"
- )
- func main() {
- connStrPostgres := "user=postgres password=password1 dbname=test_wild sslmode=disable host=127.0.0.1"
- db, err := sql.Open("postgres", connStrPostgres)
- if err != nil {
- log.Fatal(err)
- }
- if err := db.Ping(); err != nil {
- log.Fatal(err)
- }
- var count int
- fmt.Scan(&count)
- for i := 1; i <= 3; i++ {
- _, errCommon := db.Exec(`SELECT * FROM errortests($1)`, i)
- if errCommon != nil {
- fmt.Println("type:", reflect.TypeOf(errCommon))
- if errDb, ok := errCommon.(*pq.Error); ok {
- if code, _ := strconv.Atoi(string(errDb.Code)); code > 50000 {
- //как бы пишем юзеру
- log.Print(errDb.Message)
- } else {
- log.Print("Db error")
- log.Print(errDb.Message)
- }
- } else {
- log.Printf("%v", errCommon)
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement