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 }