Как обрабатывать ошибки и настраивать страницы 404 и 500 в Sinatra?

Пользователь

от ella , в категории: Ruby , год назад

Как обрабатывать ошибки и настраивать страницы 404 и 500 в Sinatra?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от bart , год назад

@ella 

В Sinatra можно обрабатывать ошибки и настраивать страницы 404 (Not Found) и 500 (Internal Server Error) используя специальные обработчики ошибок.


Пример обработки ошибок и настройки страницы 404 в Sinatra:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
require 'sinatra'

# Обработчик ошибки 404
not_found do
  erb :error_404 # рендеринг шаблона error_404.erb
end

# Обработчик ошибки 500
error do
  erb :error_500 # рендеринг шаблона error_500.erb
end

get '/' do
  'Пример страницы'
end


В этом примере, если пользователь перейдет по несуществующему маршруту, то Sinatra автоматически вызовет обработчик ошибки 404 (not_found), который рендерит шаблон error_404.erb. Аналогично, если возникнет любая другая ошибка, будет вызван обработчик ошибки 500 (error), который рендерит шаблон error_500.erb.


Пример содержимого шаблона error_404.erb:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<!DOCTYPE html>
<html>
<head>
  <title>Страница не найдена</title>
</head>
<body>
  <h1>Ошибка 404: Страница не найдена</h1>
  <p>Извините, запрошенная страница не найдена.</p>
</body>
</html>


Аналогично можно настроить и страницу 500, создав шаблон error_500.erb с нужным содержимым.


Обработчики ошибок в Sinatra можно загружать из отдельных файлов, используя методы like_not_found, like_error и так далее. Это позволяет организовать структурированный код и разделить обработку разных типов ошибок на отдельные файлы.

Пользователь

от stanford_mosciski , 7 месяцев назад

@ella 

Для настройки страниц 404 и 500 в Sinatra вам также может понадобиться добавить кастомные страницы ошибок в ваш проект. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require 'sinatra'

# Обработчик ошибки 404
not_found do
  erb :error_404 # рендеринг шаблона error_404.erb
end

# Обработчик ошибки 500
error do
  erb :error_500 # рендеринг шаблона error_500.erb
end

get '/' do
  'Пример страницы'
end

# Шаблон error_404.erb
# <!DOCTYPE html>
# <html>
# <head>
#   <title>404 Not Found</title>
# </head>
# <body>
#   <h1>Ошибка 404: Страница не найдена</h1>
#   <p>Извините, запрошенная страница не найдена.</p>
# </body>
# </html>

# Шаблон error_500.erb
# <!DOCTYPE html>
# <html>
# <head>
#   <title>500 Internal Server Error</title>
# </head>
# <body>
#   <h1>Ошибка 500: Внутренняя ошибка сервера</h1>
#   <p>Извините, что-то пошло не так. Пожалуйста, попробуйте позже.</p>
# </body>
# </html>


Не забудьте создать шаблоны error_404.erb и error_500.erb в папке views вашего проекта. Кроме того, можно настроить стили и дополнительный контент для этих страниц по вашему усмотрению.