Probar y rescatar para diferentes propósitos. El propósito de try
es para salvarte de tener que hacer:
if user && user.email
O cualquier situación en la que el objeto padre, posiblemente, puede ser nulo, lo que causaría un NoMethodError en NilClass. El propósito de rescue
es manejar las excepciones que arroja la invocación de su método. Si espera que una excepción llame al user.email
, puede rescue nil
para evitar que la excepción se propague.
En general, yo diría que evitar el uso de rescue nil
a menos que sepa lo que explícitamente excepciones estás rescatando porque usted podría ser el rescate de un excepción diferente, y que nunca se sabe porque rescue nil
sería evitar que verlo. Por lo menos tal vez se podría iniciar la sesión que:
begin
...some code...
rescue => ex
logger.error ex.message
end
Ojalá esto tuviera un enlace a la fuente de prueba. –
Aquí está el [documento y la fuente] (http://api.rubyonrails.org/classes/Object.html#method-try) a 'ActiveSuppot # try'. –