manejo de errores y liberacion de memoria