github.com/richardwilkes/toolbox@v1.121.0/fatal/fatal.go (about)

     1  // Copyright (c) 2016-2024 by Richard A. Wilkes. All rights reserved.
     2  //
     3  // This Source Code Form is subject to the terms of the Mozilla Public
     4  // License, version 2.0. If a copy of the MPL was not distributed with
     5  // this file, You can obtain one at http://mozilla.org/MPL/2.0/.
     6  //
     7  // This Source Code Form is "Incompatible With Secondary Licenses", as
     8  // defined by the Mozilla Public License, version 2.0.
     9  
    10  package fatal
    11  
    12  import (
    13  	"github.com/richardwilkes/toolbox"
    14  	"github.com/richardwilkes/toolbox/atexit"
    15  	"github.com/richardwilkes/toolbox/errs"
    16  )
    17  
    18  // IfErr checks the error and if it isn't nil, calls fatal.WithErr(err).
    19  func IfErr(err error) {
    20  	if !toolbox.IsNil(err) {
    21  		WithErr(err)
    22  	}
    23  }
    24  
    25  // WithErr logs the error and then exits with code 1.
    26  func WithErr(err error) {
    27  	errs.Log(err)
    28  	atexit.Exit(1)
    29  }