DealException/NotFoundException/Validation/Conflict/ServiceUnavailable с кодом ошибки, тексты в ErrorMessages.resx. Общий HTTP-обработчик (DealExceptionHandler) и маппинг в gRPC-интерцепторе: доменные ошибки → статус, прочие → обобщённый текст без стектрейса. Правила закреплены в код-стайле §10.
34 lines
1.4 KiB
XML
34 lines
1.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<root>
|
|
<resheader name="resmimetype">
|
|
<value>text/microsoft-resx</value>
|
|
</resheader>
|
|
<resheader name="version">
|
|
<value>2.0</value>
|
|
</resheader>
|
|
<resheader name="reader">
|
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
</resheader>
|
|
<resheader name="writer">
|
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
</resheader>
|
|
<data name="UnexpectedError" xml:space="preserve">
|
|
<value>Внутренняя ошибка сервиса. Обратитесь в поддержку.</value>
|
|
</data>
|
|
<data name="NotFoundEntity" xml:space="preserve">
|
|
<value>Объект не найден: {0}.</value>
|
|
</data>
|
|
<data name="NotFoundEntityWithId" xml:space="preserve">
|
|
<value>Объект не найден: {0} (id: {1}).</value>
|
|
</data>
|
|
<data name="ValidationFailed" xml:space="preserve">
|
|
<value>Некорректные данные запроса: {0}.</value>
|
|
</data>
|
|
<data name="ConflictState" xml:space="preserve">
|
|
<value>Конфликт состояния: {0}.</value>
|
|
</data>
|
|
<data name="ServiceUnavailable" xml:space="preserve">
|
|
<value>Сервис «{0}» временно недоступен.</value>
|
|
</data>
|
|
</root>
|