title: Recover and continue for loop if panic occur Golang
body: <p>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 <code>i becomes equal to 2</code> program will consider this as panic. It will go to recover state using defer and then after recovery loop will resume.</p>
  
  <p>So desired output should be something like that:</p>
  
  <pre><code>0
  1
  panic occured: got 2
  3
  4
  .
  .
  .
  .
  .
  10
  </code></pre>
  
  <p>Actual output I am getting</p>
  
  <pre><code>0
  1
  panic occured got:  got 2
  </code></pre>
  
  <p>Code block:</p>
  
  <pre><code>package main
  
  import "fmt"
  
  func main() {
      goFrom1To10()
  }
  
  func goFrom1To10() {
      defer recovery()
      for i := 0; i &lt;= 10; i++ {
  
          if i == 2 {
              panic("got 2")
  
          }
          fmt.Println(i)
      }
  
  }
  
  func recovery() {
      if r := recover(); r != nil {
          fmt.Println("panic occured: ", r)
      }
  
  }
  </code></pre>
  
  <p>Can this be achievable in go like when panic occur somehow we can recover and complete our loop?</p>