我有一种方法,可能会收到无效的输入值或带有相关错误消息的输出。

对于这两种情况,我都想抛出一个异常,因此这两种情况都可能在单个方法调用中发生,因此当异常同时发生时,如何将其作为单个异常处理!

最佳答案

看起来您正在尝试使用异常进行验证。这可能有用,但是如果您想获得所有与您要验证的东西不符的东西,那么您需要做一些不同的事情。一点伪代码可以让您大致了解:

public ValidationResult validateInput(Input input) {
    ValidationResult result = new ValidationResult();
    if (input.someField() == null) {
      result.addError("Some field cannot be null");
    }
    //etc
    return result;
 }


这个想法是,您有一个ValidationResult对象,该对象将存储输入错误的所有内容。验证完成后,您可以按以下方式进行处理:

ValidationResult result = validateInput(someInput);
if (result.hasErrors()) {
 for (ErrorMessage message : result.getErrors()) {
   log.error(message.getMessage());
 } else {
   //success
}


您可以编写自己的ValidationResult类,也可以研究验证框架以找到适合该目的的框架。

关于java - 在Java中同时发生多个异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19796966/

10-12 05:03