gotry

package module
v0.1.13 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2019 License: MIT Imports: 9 Imported by: 2

README

gotry

gotry for go

var ER = errors.New("dd")
Try(func() {
  _ErrWrap(ER, func(m *_M) {
    m.Msg("mmk")
    m.Tag("tag")
  })
}).Catch(func(err error) {
  switch err {
  case ER:
    fmt.Println(err.Error())
    fmt.Println(err == ER)
  }
}).CatchTag(func(tag string, err *_KErr) {
  fmt.Println(tag)
})
Try(func() {
  _SWrap(&SS{}, "mmk")
  _ErrWrap(&SS{}, func(m *_M) {
        m.Msg("mmk")
  })

}).Catch(func(err error) {
  switch err.(type) {
  case *SS:
  case error:
  }
fmt.Println(err.Error())
}).Finally(func(err *_KErr) {
	err.P()
})
Try(func() *SS {
	return &SS{}
}).Then(func(vs *SS) string {
	return vs.Error()
}).Then(func(s string) {
	fmt.Println(s)
}).P()

Try(fmt.Println, "test", 1, nil).
	Then(func(n int, err error) {
	fmt.Println(n, err)
}).P()
func hello(args ...string) bool {
	fmt.Println(args)

	for _, arg := range args {
		if arg == "a" {
			panic("error panic  info")
		}
	}

	return true
}


Try(hello, "ss", "ddd").Then(func(b bool) {
		fmt.Println(b)
}).Catch(func(err error) {
    fmt.Println(err, "err")
}).Finally(func(err *_KErr) {
    err.P()
})

Try(hello, "ss", "ddd", "a").Then(func(b bool) {
    fmt.Println(b)
}).Catch(func(err error) {
    fmt.Println(err, "err")
}).Finally(func(err *_KErr) {
    err.P()
})

Try(hello, "ss", "ddd", "a").Then(func(b bool) {
    fmt.Println(b)
}).Expect("sss %s", "ss")

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Retry added in v0.0.6

func Retry(num int, fn func()) (err error)

func Try

func Try(f interface{}, args ...interface{}) *_try

Types

This section is empty.

Jump to

Keyboard shortcuts

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