Popularity
0.5
Stable
Activity
0.0
Stable
0
2
0

Description

Paranoid is utilities supplemental to go panic, it usefull when you want to make your code panic on unhandled error, it also make your test case simpler by reducing the test branch.

Programming language: Go
License: MIT License
Tags: Utilities     Error     Miscellaneous    

GO Paranoid alternatives and similar packages

Based on the "Miscellaneous" category.
Alternatively, view GO Paranoid alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of GO Paranoid or a related project?

Add another 'Miscellaneous' Package

README

GO Paranoid

Paranoid is utilities supplemental to go panic, it usefull when you want to make your code panic on unhandled error, it also make your test case simpler by reducing the test branch.

Usage

package main

import (
    "errors"
    "github.com/Fs02/go-paranoid"
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/mysql"
)

type Transaction struct {
    ID uint
}

func retrieve() (Transaction, error) {
    db, err := gorm.Open("mysql", "[email protected](127.0.0.1:3306)/db?charset=utf8&parseTime=True&loc=Local")
    // panic if error
    paranoid.Panic(err, "Error opening database connection")

    trx := Transaction{}
    query := db.First(&trx, 1000)

    if query.RecordNotFound() {
        return trx, errors.New("not found")
    }

    // it'll panic on unknown or untestable error
    paranoid.Panic(query.Error, "Failed when fetching transaction %+v", trx)
    return trx, nil
}

func main() {
    retrieve()
}

There's also paranoid.PanicFunc which usefull when you want to run any specific function before panic (ie: rollback).