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:
@@ -1,6 +1,10 @@
|
||||
<%# backtrace %>
|
||||
|
||||
<ul class="backtrace">
|
||||
<% if exception.present? %>
|
||||
<li><%= exception.class.to_s %> exception raised</li>
|
||||
<% end %>
|
||||
|
||||
<% Rails.backtrace_cleaner.clean(backtrace).each do |b| %>
|
||||
<li class="backtrace-line"><%= b %></li>
|
||||
<% end %>
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
<% if CurrentUser.user.try(:is_builder?) && @exception.present? %>
|
||||
<h1><%= @exception.class.to_s %> exception raised</h1>
|
||||
<h1>Error</h1>
|
||||
<p><%= @message %></p>
|
||||
|
||||
<p><%= @exception.message.dup.force_encoding("utf-8") %></p>
|
||||
<%= render "static/backtrace", backtrace: @exception.backtrace %>
|
||||
<% elsif @error_message %>
|
||||
<p><%= @error_message %></p>
|
||||
<% else %>
|
||||
<p><%= @exception.message.dup.force_encoding("utf-8") %></p>
|
||||
<% unless @expected %>
|
||||
<h6>Details</h6>
|
||||
<%= render "static/backtrace", exception: @exception, backtrace: @backtrace %>
|
||||
<% end %>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
var message = <%= raw @error_message.try(:to_json) || @exception.message.to_json %>;
|
||||
var message = <%= raw @message.to_json %>;
|
||||
Danbooru.Utility.error(message);
|
||||
|
||||
@@ -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 %>
|
||||
}
|
||||
|
||||
@@ -1,6 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<% if @error_message %>
|
||||
<result success="false"><%= @error_message %></result>
|
||||
<% else %>
|
||||
<result success="false"><%= @exception.to_s %></result>
|
||||
<% end %>
|
||||
<result success="false"><%= @message %></result>
|
||||
|
||||
Reference in New Issue
Block a user