【问题标题】:Exception Handling - Best practices JSF 2异常处理 - 最佳实践 JSF 2
【发布时间】:2016-01-11 14:48:40
【问题描述】:

我正在使用 JSF 2 开发一个应用程序,我有一个关于最佳实践的问题。

处理 JSF 消息的最佳实践是什么,我必须通过托管 Beans/CDI Bean 中的 try/catch 处理业务验证错误消息,或者最佳实践是处理 ExceptionHandlerWrapper 中的所有屏幕错误异常?

例子:

public String doCreate() {

    try {
        //...SomeCode
        addInformationMessage(MESSAGE_SUCCESS_DATA_INSERTED);
    } catch (BusinessValidationException bve) {
        addErrorMessage(bve);
        return Outcome.FAILURE; 
    } catch (WebValidationException wve) {
        addErrorMessage(wve);
        return Outcome.FAILURE;     
    } catch (BusinessException e) {
        throw new WebException(e);
    }
    return Outcome.SUCCESS;
}

或者自定义ExceptionHandlerWrapper

public class AppExceptionHandler extends ExceptionHandlerWrapper {
// my implemantation
}

我对这个主题进行了很多研究,但没有发现很清楚,处理已知错误异常的最佳方法是什么?

感谢关注

【问题讨论】:

  • 是的,这是一个简单的问题,但我有这个困境,我必须处理我的第一个例子的异常业务,只留下 ExceptionHandlerWrapper 结构异常,如 (ConversationExpiredException, SessionExpiredException, ViewExpiredException, NonexistentConversationException, SecurityException, ... ) 或者我必须为我想要在业务中处理的任何类型的异常准备我的 ExceptionHandlerWrapper 并让我的更清洁的 bean 成为可能?

标签: jsf exception-handling


【解决方案1】:

最佳做法是使用正确的方法。

在这种特殊情况下,正确的方法是不重复代码。

在所有支持 bean 方法上复制粘贴/重复同一段代码是代码重复。因此,这不是正确的方法,本质上也不是最佳实践。

顺便说一句,不管您要解决什么问题。

另见:

【讨论】:

    猜你喜欢
    • 2018-01-03
    • 1970-01-01
    • 2017-05-11
    • 2013-05-09
    • 2011-11-10
    • 1970-01-01
    • 2013-04-22
    相关资源
    最近更新 更多