Skip to content

Commit c5fe871

Browse files
authored
Improved error handeling (#1094)
* improved error handeling * The last update made it static this looks better * delete static error pages * fix lint * improve the error handling in the error controller * fix lint * added dedicated 422 unprocessable entity error pag * fixed lint and used dutch language for error page
1 parent c651462 commit c5fe871

File tree

7 files changed

+27
-271
lines changed

7 files changed

+27
-271
lines changed
Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,34 @@
11
class ErrorsController < ApplicationController
2+
layout 'errors'
3+
4+
rescue_from StandardError, with: :handle_rendering_error
5+
26
def forbidden
3-
render status: :forbidden
7+
render_error_page('errors/forbidden', :forbidden, '403 Forbidden')
48
end
59

610
def not_found
7-
render status: :not_found
11+
render_error_page('errors/not_found', :not_found, '404 Not Found')
812
end
913

1014
def unacceptable
11-
render status: :unprocessable_content
15+
render_error_page('errors/unacceptable', :not_acceptable, '406 Not Acceptable')
16+
end
17+
18+
def unprocessable_entity
19+
render_error_page('errors/unprocessable_entity', :unprocessable_entity, '422 Unprocessable Entity')
1220
end
1321

1422
def internal_server_error
15-
render status: :internal_server_error
23+
render_error_page('errors/internal_server_error', :internal_server_error, '500 Internal Server Error')
24+
end
25+
26+
private
27+
28+
def render_error_page(template, status, fallback_message)
29+
render template: template, status: status
30+
rescue StandardError => e
31+
Rails.logger.error("Error rendering #{status} page: #{e.message}")
32+
render plain: fallback_message, status: status
1633
end
1734
end
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<% content_for :title, "Verzoek niet verwerkt (422) - #{Rails.application.config.x.site_name}" %>
2+
<h1>Verzoek niet verwerkt <small>(422)</small></h1>
3+
<p>Je verzoek kon niet worden verwerkt. Dit komt meestal door ongeldige gegevens.</p>
4+
<p>Controleer je invoer en probeer het opnieuw. Stuur een <%= link_to 'mailtje', "mailto:#{Rails.application.config.x.admin_email}" %> naar de ICT-commissie als dit probleem blijft optreden.</p>

config/routes.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565

6666
get '/403', to: 'errors#forbidden'
6767
get '/404', to: 'errors#not_found'
68-
get '/422', to: 'errors#unacceptable'
68+
get '/406', to: 'errors#unacceptable'
69+
get '/422', to: 'errors#unprocessable_entity'
6970
get '/500', to: 'errors#internal_server_error'
7071
end

public/404.html

Lines changed: 0 additions & 67 deletions
This file was deleted.

public/406-unsupported-browser.html

Lines changed: 0 additions & 66 deletions
This file was deleted.

public/422.html

Lines changed: 0 additions & 67 deletions
This file was deleted.

public/500.html

Lines changed: 0 additions & 66 deletions
This file was deleted.

0 commit comments

Comments
 (0)