logo
down
shadow

Should a Go package ever use log.Fatal and when?


Should a Go package ever use log.Fatal and when?

Content Index :

Should a Go package ever use log.Fatal and when?
Tag : go , By : Steve
Date : November 29 2020, 09:01 AM

wish of those help It might be just me, but here is how I use log.Fatal. As per UNIX conventions, a process which encounters an error should fail as early as possible with a non-zero exit code. This lead me to the following guidelines to use log.Fatal when…
…an error happens in any of my func init(), as these happen when the imports are processed or before the main func is called, respectively. Conversely, I only do stuff not directly affecting the unit of work the library or cmd is supposed to do. For example, I set up logging and check wether we have a sane environment and parameters. No need to run main if we have invalid flags, right? And if we can not give proper feedback, we should tell this early. …an error happens of which I know is irrecoverable. Let's assume we have a program which creates a thumbnail of an image file given on the command line. If this file does not exist or is unreadable because of insufficient permissions, there is no reason to continue and this error can not be recovered from. So we adhere to the conventions and fail. …an error occurs during a process which might not be reversible. This is kind of a soft definition, I know. Let me illustrate that. Let's assume we have an implementation of cp, and it was started to be non-interactive and recursively copy a directory. Now, let's assume we encounter a file in the target directory which has the same name (but different content) as a file to be copied there. Since we can not ask the user to decide what to do and we can not copy this file, we have a problem. Because the user will assume that the source and the target directories are exact copies when we finish with exit code zero, we can not simply skip the file in question. However, we can not simply overwrite it, since this might potentially destroy information. This is a situation we can not recover from per explicit request by the user, and so I'd use log.Fatal to explain the situation, hereby obeying the principle to fail as early as possible.

Comments
No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

JNI fatal error when having a package


Tag : java , By : Jet Thompson
Date : March 29 2020, 07:55 AM
I wish did fix the issue. Based on the error, which is when get_method_id(JNIEnv_*, _jclass*, char const*, char const*, bool, Thread*) is called via env->GetMethodID(), your jclass variable animal is null.
The FindClass call is failing because it cannot locate the class "Animal".

Rename application Package generates fatal error "Fatal error occurred while performing refactoring"


Tag : android , By : Rb.Ridge
Date : March 29 2020, 07:55 AM
wish help you to fix your issue I have found the reason behind the error.
One of my class was commented completely(package was commented too).

Fatal error when building .go package


Tag : go , By : user135518
Date : March 29 2020, 07:55 AM
I hope this helps you . I'm not sure what plain go get -v -d gets you but you should specify the package(s) that you want to install. So what you should do is something like this:
$go get github.com/moul/http2curl

Git Clone Fails - fatal: The remote end hung up unexpectedly. fatal: early EOF fatal: index-pack failed


Tag : git , By : kalfa
Date : March 29 2020, 07:55 AM
Hope this helps If you have an alternative option to clone on http, run any of the below commands in gitbash and try to clone the repository, it should work.
git config --global http.postBuffer 524288000 git config --global http.postBuffer 1048576000
~/.ssh/config  
ServerAliveInterval 60
ServerAliveCountMax 5
ClientAliveInterval 60
ClientAliveCountMax 5
echo 'ClientAliveInterval 60' | sudo tee --append /etc/ssh/sshd_config

Fatal: Required package 'Vcl50' not found


Tag : delphi , By : kaart
Date : March 29 2020, 07:55 AM
Related Posts Related QUESTIONS :
  • Go Interface property is undefined
  • Same package name on different files
  • How to stream result from grpc-server and how to return result from goroutines grpc server-stream to pass result to api
  • Golang detect if in focus or minimized
  • golang undefined: Scanner
  • Re-insert into channel causing deadlock
  • Idiomatic way to represent one of/union in Go
  • Why doesn't "go get" install the package to GOPATH?
  • What does "safely escaped with Go syntax" mean?
  • Function TestMain didn't run
  • Is it safe to remove dictionary keys while iterating over it?
  • grpc-go over https: failed rpc error: code = Unavailable desc = transport is closing:
  • what is the meaning of go syntax struct {}{}
  • How to find dependency causing "Sirupsen/logrus" vs. "sirupsen/logrus" unexpected module path error?
  • Test whether a function was called
  • How to nest structures in Go
  • < operator in Go lang
  • Concurrency in Go
  • How to run for x seconds in a http handler
  • What is the purpose of arbitrary precision constants in Go?
  • How do I get proper parameter names in cgo exported functions?
  • How to pass method as parameter in Go?
  • new vs. {} when struct include interface in Go
  • I have a question about the effect of a sender channel
  • I don't understand the evaluation rule here
  • How to find if type is float64
  • What is correct way to check if rune is in Basic Multilingual Plane?
  • Are all runtime errors recoverable in Go?
  • Traverse an array of pairs
  • Looping through all values of a byte array
  • Return polymorphic type with data member
  • Trying to write a custom rule
  • Difference between Ragel transition actions and state actions
  • Generic function which appends two arrays
  • Is it safe to use the read lock of sync.RWMutex for writing and its write lock for reading if the writes never race with
  • Bound mismatch when drawing buffer to screen (golang.org/x/exp/shiny/screen)
  • How to get images path from golang project file
  • export double quotes using template
  • Can't use txdb with Gormigrate
  • How do I optimise a for loop which makes requests to an API?
  • Why does AWS API Gateway websocket send error
  • cannot use nil as type model.Article in return argument
  • Go defer function return values
  • "Unable to start NATS Server in Go Routine" while testing
  • How to us proxy with chromedp
  • Does Golang Copy the String on Modification/Write?
  • Go - cannot parse nested struct
  • how to upload directories to golang server from html?
  • group [][]string (2D slice) by row value
  • Converting a struct to a tuple slice without reflection
  • Golang project Travis CI Build fails with error `Makefile:15: recipe for target 'test' failed`
  • Go channel not receiving/printing last value sent to channel
  • How could I define a safe division using interface and reflect?
  • How to make one pod communicate with the other pod's localhost
  • Why is strings.Builder is slower than fmt.Sprint for appending string in my test program?
  • How to generate zip / 7z archive on the fly in a HTTP server using Gin?
  • How to upload file which is response of third party API
  • Why does 'go vet' complain only in some versions of Go?
  • Convert a struct interface to an identical struct
  • Go Modules "unknown revision" error when using commit hash
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com