我目前正在尝试了解 JHipster 中的异常处理。
我想在服务中抛出异常。异常消息应在 UI 中进行翻译,并应为该消息设置参数。 CustomParameterizedException
非常适合。但从体系结构的角度来看,我认为我不能在服务中使用它,因为异常位于 web 包中。为什么它位于 web 包中?我希望它位于自己的包 exception
或类似的包中,这样就可以从应用程序的每一层访问它。
我还在ExceptionTranslator.processRuntimeException
方法中看到,如果ResponseStatus
注释设置为on,则可以处理任何RuntimeException
异常(exception)情况。据我所知,UI 中的翻译只会根据错误代码完成。所以我不能将它用于我需要的自定义错误消息。
如何在 jHipster 应用程序中除 Web 层之外的其他层中进行异常处理?
提前感谢您的帮助!
最佳答案
CustomParameterizedException
位于 Web 包中,因为它使用 ParameterizedErrorVM
这是一个 View 模型,它以 JSON 形式序列化并由应用程序的 Angular 部分使用。这是生成的代码,请随意更改它以满足您的需求。
Spring MVC 提供了多种处理异常的方法,如 blog post 所示。 。
您还可以使用 AOP 来实现默认处理,例如记录或转换异常,请参阅 JHipster 应用中的 LoggingAspect
。
关于exception - Jhipster 服务中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40116314/