处理恐慌和延误的职能

First of all I love GO :D I have some questions about panic/recover. Panic can be recovered only in deferred funcs? Is deferred func called when deadlock happens? I have tested it and no... Can you please explain why not?

Panic can be recovered only in deferred funcs?

Yes, only in deferred funcs.

Is deferred func called when deadlock happens? I have tested it and no... Can you please explain why not?

It is an implementation choice made by the authors of the Go run-time. The assumption is that recovering from a deadlock is practically impossible.