En la salida por error con panic sólo debe ser cuando se incurre en error del programador y no de lógica del programa en su flujo natural. panic como función integrada detiene el orden de flujo desde el punto que sea llamado.
Una vez que se activa panic, continúa hasta la pila de llamadas hasta que la goroutine actual haya retornado, o cuando panic es atrapado con recover.
Oops! This image does not follow our content guidelines. To continue publishing, please remove it or upload a different image.
Tener en cuenta que llamar recover() para capturar una goroutine que entra en panic solo es útil dentro de una función diferida; de lo contrario, la función retornaría nil y no tendría ningún otro efecto. Esto se debe a que las funciones defer también se ejecutan cuando la función circundante entra en panic para poder realizar alguna tarea después de este punto.