Hola jorgeazul3:
Lo que pones es un ejemplo de un CURSOR, pero más que tratar de explicar el código me gustaría que nos dijeras cuál es tu duda...
Convendría que antes que nada revisaras la documentación oficial de MySQL acerca de Cursores y manejo de errores:
Para la declaración de variables.
http://dev.mysql.com/doc/refman/5.0/es/declare.html
Para los cursores:
http://dev.mysql.com/doc/refman/5.0/es/cursors.html
Para el manejo de errores:
http://dev.mysql.com/doc/refman/5.0/...-handling.html
(busca el código 02000)
http://dev.mysql.com/doc/refman/5.0/es/handler.html
Una vez que revises la documentación, si continuas con dudas lo comentas en el foro.
Saludos
Leo.