github.com/richardwilkes/toolbox@v1.121.0/call.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 toolbox
    11  
    12  import (
    13  	"github.com/richardwilkes/toolbox/errs"
    14  )
    15  
    16  // Call the provided function, safely wrapped in a errs.Recovery() handler that logs any errors via slog.
    17  func Call(f func()) {
    18  	CallWithHandler(f, func(err error) { errs.Log(err) })
    19  }
    20  
    21  // CallWithHandler calls the provided function, safely wrapped in a errs.Recovery() handler.
    22  func CallWithHandler(f func(), errHandler func(err error)) {
    23  	defer errs.Recovery(errHandler)
    24  	f()
    25  }