Advertisement
Guest User

Untitled

a guest
May 16th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "database/sql"
  5. "fmt"
  6. "log"
  7. "reflect"
  8.  
  9. "strconv"
  10.  
  11. "github.com/lib/pq"
  12. )
  13.  
  14. const (
  15. psqlBusinessError = "50001"
  16. psqlBusinessErrorWithLogging = "50002"
  17. psqlVersionControlError = "50003"
  18. )
  19.  
  20. func main() {
  21.  
  22. connStrPostgres := "user=postgres password=password1 dbname=test_wild sslmode=disable host=127.0.0.1"
  23. db, err := sql.Open("postgres", connStrPostgres)
  24. if err != nil {
  25. log.Fatal(err)
  26. }
  27. if err := db.Ping(); err != nil {
  28. log.Fatal(err)
  29. }
  30. var count int
  31. fmt.Scan(&count)
  32. for i := 1; i <= 3; i++ {
  33. _, errCommon := db.Exec(`SELECT * FROM errortests($1)`, i)
  34. if errCommon != nil {
  35. fmt.Println("type:", reflect.TypeOf(errCommon))
  36. if errDb, ok := errCommon.(*pq.Error); ok {
  37. if code, _ := strconv.Atoi(string(errDb.Code)); code > 50000 {
  38. //как бы пишем юзеру
  39. log.Print(errDb.Message)
  40. } else {
  41. log.Print("Db error")
  42. log.Print(errDb.Message)
  43.  
  44. }
  45. } else {
  46.  
  47. log.Printf("%v", errCommon)
  48. }
  49. }
  50. }
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement