On Friday, November 15, 2013 10:26:10 AM UTC, sol wrote:
>
> I've used the above approach now
>
> However, this only works for controller actions.
> I've got some cronjobs in the project (lib folder) as well as a sinatra
> app that is mounted within the rails app.
>
> Is there any way I could catch the exceptions in these parts as well?
>
> For a cronjob type thing it's up to you to wrap your script with something
that will log the error. My cronjobs normally end up looking like
TaskWrapper('some job') do
#work here
end
and elsewhere
def TaskWrapper
begin
yield
rescue Exception => ex
#do something with the exception
raise
end
end
I use rescue Exception because for once I think it's appropriate that
things like SyntaxError are caught so that I can be notified about them
For the sinatra (or even the rails case) you could write a rack middleware
that would look something like
class ErrorNotifier
def initialize(app)
@app = app
end
def call(env)
begin
@app.call(env)
rescue Exception => ex
#do something with the exception
raise
end
end
end
You could also render an error message if you want to override that.
You might also be interested in the exception handling stuff described
at
http://blog.plataformatec.com.br/2012/01/my-five-favorite-hidden-features-in-rails-3-2/
Fred
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/cd9ccbb1-6ef4-48ba-bdee-e9a783e6f287%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.