Exception handling 如果布尔值为false,则捕获异常

Exception handling 如果布尔值为false,则捕获异常,exception-handling,try-catch,Exception Handling,Try Catch,这是复杂问题的最简单示例。我还没有在整个互联网上找到这个问题的例子。我正在验证返回布尔值的validationMethod中的输入。现在,我需要在调用类时使用这个方法(如果返回为true,则运行流;如果返回为false,则捕获异常) 根据,可以使用布尔谓词筛选catch子句。因此,您的验证方法需要抛出一个异常,您可以在catch子句中筛选该异常。但如果这样做的话,您还可以滚动自己的自定义异常,而不必处理布尔值。另一种选择是,在调用代码中,将返回代码视为返回代码,并抛出自己的异常 备选案文1:

这是复杂问题的最简单示例。我还没有在整个互联网上找到这个问题的例子。我正在验证返回布尔值的validationMethod中的输入。现在,我需要在调用类时使用这个方法(如果返回为true,则运行流;如果返回为false,则捕获异常)


根据,可以使用布尔谓词筛选catch子句。因此,您的验证方法需要抛出一个异常,您可以在catch子句中筛选该异常。但如果这样做的话,您还可以滚动自己的自定义异常,而不必处理布尔值。另一种选择是,在调用代码中,将返回代码视为返回代码,并抛出自己的异常

备选案文1:

public class StringUtil{
    public static boolean validateNumInput(String UserInput)
    {
        if(UserInput.matches("[0-9]+")){
            return true;
        }
        throw new Exception ("Validation failed!");
    }   
}

public class Main{
    public static void main(String[] args){
        String a="012*+";
        try{
            if(StringUtil.validateNumInput(a)){
                System.out.println(StringUtil.validateNumInput(a)); 
            }
        }catch(Exception e) when (e.Message == "Validation failed!") {
            System.out.println("Big problem");
        }       
    }   
}
备选案文2:

public class Main{
    public static void main(String[] args){
        String a="012*+";
        try{
            if(StringUtil.validateNumInput(a)){
                System.out.println(StringUtil.validateNumInput(a)); 
            } else {
                throw new Exception ();
            }
        }catch(Exception e) {
            System.out.println("Big problem");
        }       
    }   
}
public class StringUtil{
    public static boolean validateNumInput(String UserInput)
    {
        if(UserInput.matches("[0-9]+")){
            return true;
        }
        throw new Exception ("Validation failed!");
    }   
}

public class Main{
    public static void main(String[] args){
        String a="012*+";
        try{
            if(StringUtil.validateNumInput(a)){
                System.out.println(StringUtil.validateNumInput(a)); 
            }
        }catch(Exception e) when (e.Message == "Validation failed!") {
            System.out.println("Big problem");
        }       
    }   
}
public class Main{
    public static void main(String[] args){
        String a="012*+";
        try{
            if(StringUtil.validateNumInput(a)){
                System.out.println(StringUtil.validateNumInput(a)); 
            } else {
                throw new Exception ();
            }
        }catch(Exception e) {
            System.out.println("Big problem");
        }       
    }   
}