Explain the use of Go's error handling and exception handling for dealing with and reporting errors and exceptions in Go programs?