Hello experts, so from state of my question you can clearly guess I am pretty new to golang and coming from python background. So my case is quite complex but for asking question in clean and clear context I am using simple for loop that initiate from 0 and goes upto 10. Now what I am trying to do is when i becomes equal to 2 program will consider this as panic. It will go to recover state using defer and then after recovery loop will resume.
So desired output should be something like that.
0
1
panic occured: got 2
3
4
.
.
.
.
.
10
Actual output I am getting
0
1
panic occured got: got 2
Code
package main
import "fmt"
func main() {
goFrom1To10()
}
func goFrom1To10() {
defer recovery()
for i := 0; i <= 10; i++ {
if i == 2 {
panic("got 2")
}
fmt.Println(i)
}
}
func recovery() {
if r := recover(); r != nil {
fmt.Println("panic occured: ", r)
}
}
This recovery and continue loop might seems wrong way to handle things but in my case its necessary to continue loop if got panic.
Thanks.