Thursday, 8 May 2025

GO LANG use go routine to handle error

 


import (

    "log"

    "os"

)

// use channel

func doWork() error {

    // … your work here …

    return fmt.Errorf("something went wrong")

}


func main() {

    errCh := make(chan error, 1)


    go func() {

        if err := doWork(); err != nil {

            errCh <- err

        }

        close(errCh)

    }()


    // block until either we get an error or the channel closes

    if err, ok := <-errCh; ok {

        log.Printf("worker error: %v", err)

        os.Exit(1)

    }


    log.Println("worker completed successfully")

}

No comments:

Post a Comment