Я понимаю, что для восстановления паники используется.Но следующий блок не может быть восстановлен, когда возникает паника в процедуре go
func main() {
done := make(chan int64)
defer fmt.Println("Graceful End of program")
defer func() {
r := recover()
if _, ok := r.(error); ok {
fmt.Println("Recovered")
}
}()
go handle(done)
for {
select{
case <- done:
return
}
}
}
func handle(done chan int64) {
var a *int64
a = nil
fmt.Println(*a)
done <- *a
}
Однако следующий блок может выполняться так, как ожидается,Вот ссылка на игровую площадку: https://play.golang.org/p/lkvKUxMHjhi