模型/控制器MVC中的异常处理

时间:2014-05-15 16:06:17

标签: spring exception spring-mvc model-view-controller exception-handling

我刚刚开始学习MVC模式,最初是在android中,但目前使用的是Spring MVC框架。我想知道在模型或控制器中进行测试/异常处理是否更合适。我的意思是,说我在模型中有一些字段应限制为某些值或一系列值;我应该测试输入并在模型中抛出异常并让控制器捕获它们,还是控制器在将输入转发到模型之前检查它自己的输入?

我对控制器测试的担心是我可能需要在几个位置检查值,而如果我要在模型中测试它只在一个地方完成。我对检查模型输入的担心是,出于某种原因,这对我来说似乎很奇怪;然后我再次对这种模式不熟悉,所以我还不知道。

什么是常态?推荐什么?

谢谢大家

1 个答案:

答案 0 :(得分:2)

在模型和控制器中进行测试和/或异常处理是合适的,这最适合处理异常。

例如,如果您想要从字符串中解析数字并在字符串不包含数字时使用默认值并且您要在模型中进行解析,那么您应该在模型中处理numberformatexception。 我认为这是一个预期的"异常。

private String blammyValue;

public int getBlammyAsInt()
{
    int returnValue;

    try
    {
        returnValue = Integer.parseInt(blammyValue);
    }
    catch (NumberFormatException exception)
    {
        returnValue = -1; // some default value
    }

    return returnValue;
}

如果异常是不寻常的, 像数据库异常一样 并且没有合理的默认行为, 然后在控制器中捕捉它是有道理的。