Forum: Rails-ES Ayuda begin/rescue

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
0fdce938a28a604fd5613a68b0d78fcb?d=identicon&s=25 Jose vicente Ribera pellicer (joripel)
on 2009-05-25 09:32
Muy buenas, en nuestra aplicacion nos estan llegando erroes del tipo:

A Net::SMTPFatalError occurred in respuestas#create:

 550 sorry, no mailbox here by that name. (#5.7.17)

 /opt/ruby-enterprise-1.8.6-20081215/lib/ruby/1.8/net/smtp.rb:679:in
`check_response'

El fallo lo tenemos localizado. Cuando un usuario comenta una respuesta
de otro usuario existe la posibilidad de que al autor del comentario se
le mande un correo avisandole que alguna de sus respuestas ha sido
comentada por otro usuario. El poblema se da cuando el correo de este no
es un correo valido, entonces se produce el error que comento arriba.

Hemos visto que podriamos tratarlo con el begin /rescue pero no se que
opcion elegir de entre todas las que nos ofrece. El metodo en cuestion
es algo tal que asi:


def create

if (!@respuesta.duplicado?)
    if...
      if...

        if... Evaluo una serie de condiciones)
          # Mando email avisando de respuesta
        end
      end
    end
        redirect_to...

else
      redirect_to...
end


Del error, he encontrado esta informacion:

http://soporte.stx.com.mx/index.php?_m=knowledgeba...

El problema es que como no habia usado antes nada parecido al
begin/rescue no se muy bien como aplicarlo y me gustaria tener vuestra
opinipn. Por los rjrmplos que he visto y dado que el error se produce
por que el servidor rechaza la direccion habia pensado en poner un
begin/rescue rescue ServerError que abarcara el metodo en donde se
produce el email. Os parece la mejor forma de solucionarlo? Me
recomendais otra opcion.

Un saludo a to2.
0fdce938a28a604fd5613a68b0d78fcb?d=identicon&s=25 Jose vicente Ribera pellicer (joripel)
on 2009-05-25 11:08
Ya nos funciona, lo que hemos hecho a sido simplemente un rescue:

if...#tengo que enviar el email
 begin
   MiguelStrogoff.deliver_respuesta( original.usuario, @respuesta,
url_respuesta(@tema, @respuesta) ) # Manda email avisando de respuesta
 rescue
  'Fallo en el envío de correo al usuario'.loguea_esto(original.usuario)
 end


Ahora ya no da problemas (antes no nos redirigia bien y mostarba una
pantalla de error. Facilmente el usuario podria pensar que su mensaje no
habia sido publiucado correctamente).

PD

loguea_esto es uan funcion que saca en el log la variable que le
introducimos.

Un saludo
This topic is locked and can not be replied to.