application controller: clean up exception handling.

* Simplify code.
* Show backtraces for all users, not just builders.
* Show backtraces only for unexpected server errors (status 5xx), not
  for normal client errors (status 4xx).
* Log expected errors at info level (reduce noise in production logs).
This commit is contained in:
evazion
2019-08-13 21:30:20 -05:00
parent 84d311f366
commit e70cae457d
7 changed files with 32 additions and 40 deletions

View File

@@ -1,9 +1,5 @@
<% if @error_message %>
{"success": false, "message": <%= raw @error_message.encode("utf-8", {:invalid => :replace, :undef => :replace, :replace => "?"}).to_json %>}
<% else %>
{
"success": false,
"message": <%= raw @exception.to_s.encode("utf-8", {:invalid => :replace, :undef => :replace, :replace => "?"}).to_json %>,
"backtrace": <%= raw Rails.backtrace_cleaner.clean(@exception.backtrace).to_json %>
}
<% end %>
{
"success": false,
"message": <%= raw @message.to_json %>,
"backtrace": <%= raw @backtrace.to_json %>
}