https://46ebu.com/understanding-error-handling-and-panic-recovery-in-go
Understanding Error Handling and Panic Recovery in Go - 46ebu