Thanks a lot! That's useful

On Saturday, 16 November 2013 22:36:35 UTC+1, Frederick Cheung wrote:
>
>
>
> 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 rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/68616ea1-d09e-4b2b-a8b2-8e844fbae616%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to