Skip to content

arskang/gotry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GOTRY

A simple Try-Catch-Finally with Golang

Credits: https://dzone.com/articles/try-and-catch-in-golang

Examples
  1. Code: .Go()
package main

import "github.com/arskang/gotry"

func main() {
    gotry.New{
		Try: func() gotry.Success {
			err := true
			fmt.Println("Start")
			if err {
				panic("Error")
			}
			fmt.Println("End")
		},
		Catch: func(e *gotry.Exception) {
			fmt.Println("Catch:", e.Type, e.Error)
		},
		Finally: func() {
			fmt.Println("Finally")
		},
	}.Go()
}
Start
Catch: string Error
Finally
  1. Code: .Error()
package main

import "github.com/arskang/gotry"

func main() {
    err :=  gotry.New{
		Try: func() gotry.Success {
			err := true
			fmt.Println("Start")
			if err {
				panic("Error")
			}
			fmt.Println("End")
		},
        Catch: func(e *gotry.Exception) {
			// Not available
		},
		Finally: func() {
			fmt.Println("Finally")
		},
	}.Error()
	fmt.Println("Error:", err)
}
Start
Finally
Error:  &{string Error}
  1. Code: .Execute()
package main

import "github.com/arskang/gotry"

func main() {
    success, err :=  gotry.New{
		Try: func() gotry.Success {
			err := false
			fmt.Println("Start")
			if err {
				panic("Error")
			}
			return "End"
		},
        Catch: func(e *gotry.Exception) {
			// Not available
		},
        Finally: func() {
			fmt.Println("Finally")
		},
	}.Execute()
	fmt.Println("Error:", err)
	fmt.Println("Success:", success)
}
Start
Finally
Error: <nil>
Success: End