如何制作自定义例外以指定JTEXTFIELD的特定密码?

发布于 2025-02-02 03:22:11 字数 4307 浏览 2 评论 0原文

我正在尝试在我的解决方案上使用自定义异常,而当“ iammanager”以外的用户输入时,会有一个错误消息。但是,当我尝试运行代码时,有一个错误说“异常永远不会在相应的尝试语句的正文中抛出”。这是我的自定义异常类的代码。

public class InvalidCodeException extends Exception{
    
     //InvalidCodeException(String message){
    //    super(message);
    //}
     
    String managerN ="iammanager";
  
    public InvalidCodeException(String conditionViolated)
    {
        super("Invalid Password: ");
        managerN = conditionViolated;
    }
    
    public String printMessage()
    {
        // Call constructor of parent Exception
        // according to the condition violated
        switch (managerN) {
  
       // Password should not contain any space
        case "one":
            return ("Password should not contain any space");
  
        
        // Password should contain at least
        // one special character ( @, #, %, &, !, $ )
        case "two":
            return ("Password should not contain any special characters");
  
        // Password should not contain any numbers
        case "three":
            return ("Password should not contain any number");
  
        // Password should contain at least
        // one special character ( @, #, %, &, !, $ )
       // case "four":
        //    return ("You do not have access!");
  
        }
  
        return ("You do not have access!");
    }
}

这是我在jform类上的代码当用户输入jtextfield上的名称并按下按钮时,如果用户输入“ iammanager”以外的其他

public static void isValid(String managerN)
       throws InvalidCodeException
    {
  
  
        // to check space
        if (password.contains(" ")) {
            throw new InvalidCodeException("one");
        }
        
  
        // for special characters
        if (!(managerN.contains("@") || managerN.contains("#")
              || managerN.contains("!") || managerN.contains("~")
              || managerN.contains("$") || managerN.contains("%")
              || managerN.contains("^") || managerN.contains("&")
              || managerN.contains("*") || managerN.contains("(")
              || managerN.contains(")") || managerN.contains("-")
              || managerN.contains("+") || managerN.contains("/")
              || managerN.contains(":") || managerN.contains(".")
              || managerN.contains(", ") || managerN.contains("<")
              || managerN.contains(">") || managerN.contains("?")
              || managerN.contains("|"))) {
            throw new InvalidCodeException("two");
        }
  
  
        // for numbers
        if (!(managerN.contains("0") || managerN.contains("1")
              || managerN.contains("2") || managerN.contains("3")
              || managerN.contains("4") || managerN.contains("5")
              || managerN.contains("6") || managerN.contains("7")
              || managerN.contains("8") || managerN.contains("9"))) {
            throw new InvalidCodeException("three");
        }}

  private void confirmActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        
        String managerN = "iammanager";
        
        try {
            managerN = managerName.getText();
            JOptionPane.showMessageDialog(null, "Welcome to User List Manager!" );
        }
        catch(InvalidCodeException e) {
            JOptionPane.showMessageDialog(null, e.getMessage() );
            JOptionPane.showMessageDialog(null, e.printMessage() );
        }
    }        

                           

更新的用户输入尝试catch语句:

private void confirmActionPerformed(java.ava.awt.event.actionevent.actionevent evt){

// TODO在此处添加您的处理代码:

    String managerN = "iammanager" ;
    
    try {
        
        isValid(managerN);
        managerName.getText().equals("iammanager");
        JOptionPane.showMessageDialog(this, "Welcome to User List Manager !"); 
        //calling user list page
        UserList userP = new UserList();
        userP.show();
        dispose();
        
    }
    catch(InvalidCodeException e) {
        
        JOptionPane.showMessageDialog(this, "You do not have access");
       
        }
    
}                                  

当我使用它时,尝试捕获的错误消息消失了。但是,输出不是我想要的,该代码的输出是它仍然打印了yo,即使我放置了正确的值,即“ iammanager”。谁能告诉我我做错了哪一部分?

i am trying to use a custom exception on my solution where when user input other than "iammanager" there shall be an error message. However, when i try to run the code there is an error said that 'exception is never thrown in a body of a corresponding try statement". Here is my code for the custom exception class.

public class InvalidCodeException extends Exception{
    
     //InvalidCodeException(String message){
    //    super(message);
    //}
     
    String managerN ="iammanager";
  
    public InvalidCodeException(String conditionViolated)
    {
        super("Invalid Password: ");
        managerN = conditionViolated;
    }
    
    public String printMessage()
    {
        // Call constructor of parent Exception
        // according to the condition violated
        switch (managerN) {
  
       // Password should not contain any space
        case "one":
            return ("Password should not contain any space");
  
        
        // Password should contain at least
        // one special character ( @, #, %, &, !, $ )
        case "two":
            return ("Password should not contain any special characters");
  
        // Password should not contain any numbers
        case "three":
            return ("Password should not contain any number");
  
        // Password should contain at least
        // one special character ( @, #, %, &, !, $ )
       // case "four":
        //    return ("You do not have access!");
  
        }
  
        return ("You do not have access!");
    }
}

and this is my code on the jform class where when user input the name on the jtextfield and the button was pressed it should display an error message if the user input other than "iammanager"

public static void isValid(String managerN)
       throws InvalidCodeException
    {
  
  
        // to check space
        if (password.contains(" ")) {
            throw new InvalidCodeException("one");
        }
        
  
        // for special characters
        if (!(managerN.contains("@") || managerN.contains("#")
              || managerN.contains("!") || managerN.contains("~")
              || managerN.contains("
quot;) || managerN.contains("%")
              || managerN.contains("^") || managerN.contains("&")
              || managerN.contains("*") || managerN.contains("(")
              || managerN.contains(")") || managerN.contains("-")
              || managerN.contains("+") || managerN.contains("/")
              || managerN.contains(":") || managerN.contains(".")
              || managerN.contains(", ") || managerN.contains("<")
              || managerN.contains(">") || managerN.contains("?")
              || managerN.contains("|"))) {
            throw new InvalidCodeException("two");
        }
  
  
        // for numbers
        if (!(managerN.contains("0") || managerN.contains("1")
              || managerN.contains("2") || managerN.contains("3")
              || managerN.contains("4") || managerN.contains("5")
              || managerN.contains("6") || managerN.contains("7")
              || managerN.contains("8") || managerN.contains("9"))) {
            throw new InvalidCodeException("three");
        }}

  private void confirmActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        
        String managerN = "iammanager";
        
        try {
            managerN = managerName.getText();
            JOptionPane.showMessageDialog(null, "Welcome to User List Manager!" );
        }
        catch(InvalidCodeException e) {
            JOptionPane.showMessageDialog(null, e.getMessage() );
            JOptionPane.showMessageDialog(null, e.printMessage() );
        }
    }        

                           

Updated try catch statement:

private void confirmActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

    String managerN = "iammanager" ;
    
    try {
        
        isValid(managerN);
        managerName.getText().equals("iammanager");
        JOptionPane.showMessageDialog(this, "Welcome to User List Manager !"); 
        //calling user list page
        UserList userP = new UserList();
        userP.show();
        dispose();
        
    }
    catch(InvalidCodeException e) {
        
        JOptionPane.showMessageDialog(this, "You do not have access");
       
        }
    
}                                  

when i use this, the error message for try catch disappeared. however the output was not something that i want, the output for this code was it still printed yo do not have access even though i put the correct value which is "iammanager". can anyone tell me which part did i do wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文