HTML - это язык разметки. Независимо от того, сколько строк вы вставляете в исходный код, вы ничего не увидите от него в презентации (конечно, если предположить, что вы не используете или
white-space:pre
). HTML использует элемент
для представления строки. Таким образом, вам действительно нужно преобразовать реальные и невидимые строки, обозначенные символами xA
(newline, linefeed, LF, \n
) и / или xD
(возврат каретки, CR, \r
) элементом HTML
.
В большинстве языков программирования вы можете просто сделать это заменой строки "\n"
на "
.
"
Я думаю, что имеет смысл зарегистрировать ошибку и просто отобразить ошибку HTTP с ошибкой, например BAD_REQUEST или INTERNAL_SERVER_ERROR ...
Это сложная и тонкая тема - она вполне может быть основана на мнении.
Во-первых, избегайте использования исключений для передачи логики приложения. Ваш пример не предполагает, что вы делаете это, но часто пользовательские исключения используются для передачи логики приложения или домена, и обработка этого в блоке try / catch сложна для чтения, тестирования и развития. Например, если покупка не удалась из-за того, что клиент превысил кредитный лимит (бизнес-правило), я бы не использовал пользовательское исключение для управления этим экземпляром.
Во-вторых, попробуйте использовать встроенные исключения, а не создавать свои собственные. Java имеет несколько встроенных исключений для проверки параметров; Вы не добавляете никакой ценности, дублируя их. Создавайте пользовательские исключения только тогда, когда вы не можете найти встроенное исключение Java.
В-третьих, попробуйте обработать исключения приложений на уровне контроллера, если вы можете - проталкивание всего на уровень обслуживания делает этот уровень более сложным и трудным для тестирования.
Наконец, сконцентрируйтесь на том, как вы сообщаете свои ошибки своему клиенту - обычным делом является использование кодов ошибок HTTP. В конце концов, вы можете в конечном итоге преобразовать свое собственное исключение в код «HTTP: 500», и вы захотите, чтобы ваши клиентские приложения могли согласовывать эти исключения согласованным образом.
Как указал Невилл; Это дискуссионная тема, и нет ничего действительно правильного или неправильного.
Мое мнение таково, что API должен быть независимым от пользовательского интерфейса. Так что, если исключение выдает исключение ... все в порядке, чтобы отбросить его обратно ... и пусть клиент справится с этим или решит, что делать с этим исключением. Потому что некоторые клиенты могут захотеть показать красивое удобное для пользователя сообщение; в то время как другому клиенту может потребоваться фактическое сообщение (например, если другой API вызывает этот API).
Я не вижу никаких проблем с этим, но вы можете лучше использовать Spring, чтобы сделать это для вас в своем API отдыха.
В Spring вы можете использовать @RestControllerAdvice
и @ExceptionHandler
, чтобы перехватить любое исключение и вернуть приятное сообщение для пользователя. Нравится:
@Slf4j
@RestControllerAdvice
public class ErrorHandlerController {
@ExceptionHandler(CustomException.class)
public ResponseEntity<ApiErrorResponse> handleApiException(CustomException ex, Locale locale) {
log.error("Custom error catch with the code {}", ex.getErrorCode(), ex);
ApiErrorResponse error = new ApiErrorResponse(ex, locale);
return new ResponseEntity<>(error, ex.getHttpStatus());
}
}