defers

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Collect

func Collect(f func() error, dst *error)
Example
package main

import (
	"errors"
	"fmt"

	"github.com/xoctopus/x/misc/defers"
)

func main() {
	var err error

	func() {
		fmt.Println("Single:")
		defer func() { fmt.Println(err) }()

		defer defers.Collect(func() error { return errors.New("a") }, &err)
	}()

	err = nil
	func() {
		fmt.Println("Multi:")
		defer func() { fmt.Println(err) }()

		defer defers.Collect(func() error { return errors.New("d") }, &err)
		defer defers.Collect(func() error { return errors.New("c") }, &err)
		defer defers.Collect((&closer{"b"}).Close, &err)
		defer defers.Collect((&closer{"a"}).Close, &err)
	}()

}

type closer struct{ name string }

func (c *closer) Close() error { return errors.New(c.name) }
Output:

Single:
a
Multi:
a
b
c
d

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL