Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的年龄异常错误_Java_Exception_Exception Handling - Fatal编程技术网

Java中的年龄异常错误

Java中的年龄异常错误,java,exception,exception-handling,Java,Exception,Exception Handling,我创建了一个程序来询问用户的姓名和年龄,我还做了一个自定义的异常,但它不会启动任何关于如何使其更好或如何正确启动异常的提示,这是值得赞赏的,但请注意,我仍在学习java 用户定义的异常:(年龄异常) 主程序: package ageName; import java.util.Scanner; @SuppressWarnings("resource") public class Project1 { public static void main(String[]args){

我创建了一个程序来询问用户的姓名和年龄,我还做了一个自定义的异常,但它不会启动任何关于如何使其更好或如何正确启动异常的提示,这是值得赞赏的,但请注意,我仍在学习java

用户定义的异常:(年龄异常)

主程序

package ageName;

import java.util.Scanner;

@SuppressWarnings("resource")
public class Project1 {
    public static void main(String[]args){

      Scanner age = new Scanner (System.in);
      System.out.println("Enter your age");
      int a = age.nextInt();
      System.out.println("Enter you name");
      String b = age.next();

  try{  
     if(a >125 && a<0){         
        throw new AgeExcpt();
     }          
    }
    catch(AgeExcpt ex){
    System.out.println("You entered an invalid number" + a);        
    }
    finally{
        System.out.println("Your age is " + a);
        System.out.println("Your name is " + b);
    }   
}
}
packagename;
导入java.util.Scanner;
@抑制警告(“资源”)
公共类项目1{
公共静态void main(字符串[]args){
扫描仪使用年限=新扫描仪(系统英寸);
System.out.println(“输入您的年龄”);
int a=age.nextInt();
System.out.println(“输入您的姓名”);
字符串b=age.next();
试试{

如果(a>125&&a表达式
a>125&&a<0
普遍为假。

以下仅供参考

你应该试试(正如@Jared提到的)

if(a>125 | | a<0){
抛出新的AgeExcpt();
} 
逻辑运算符:

下面列出了逻辑运算符:您可以检查此链接

信息示例

  • 操作员:
    &&

    描述:称为逻辑与运算符。
    示例:如果两个操作数都是布尔值
    true
    ,则只有条件变为true。(A&&B)为false

  • 操作员:
    |

    描述:称为逻辑或运算符。
    示例:如果两个操作数中的任何一个为布尔值
    true
    ,则条件变为true。(A | | B)为true

  • System.out.println(“输入员工年龄:”;
    年龄=sc.nextInt();
    试一试{
    if(年龄<18岁)
    抛出新年龄异常(“无效年龄”);
    其他的
    System.out.println(“有效年龄”);
    }
    捕获(e){
    System.out.println(e+“--Age必须大于18!!”;
    System.out.println(“请再次输入正确的员工年龄:”;
    年龄=sc.nextInt();
    }
    如果年龄又错了怎么办?????????
    
    请格式化您的代码……表达式
    a>125&&a<0
    普遍是错误的。您可能是指
    a<125&&a>0
    @AnubianNoob他不是这个意思(我怀疑),但等价物应该是
    !(a=0)
    。通常情况下,您不会只是为了检查而进行尝试。尝试应该在main开始之前或至少在输入age之前开始。它不需要为false吗?它需要是抛出我的异常,以检查它是否超过125或低于0。@MrGamma195如果它普遍为false,则无论大小,都不会抛出您的异常输入。你需要考虑一下你刚才说的,即“或”。我想我明白你告诉我的,我需要它来检查输入的数字是大于125还是小于0,对吗?@MrGamma195是的,“或”,是关键词。@MrGamma195…是的,
    |
    表示“或”。你把C和Java混淆了。在C中,表达式0表示“假”表达式non-zero表示“true”,在Java中它必须是一个布尔表达式(即
    true
    false
    非0或非零)@rocks_90 | | |操作符和我学校的所有其他操作符一起被浏览了一遍。我把它们放在一个txt文件中,只需在我的计算机中进行一些搜索computer@rocks_90不用担心,Java程序员也需要学习C语言——至少我认为这很重要。请解释为什么这是问题的答案。
    package ageName;
    
    import java.util.Scanner;
    
    @SuppressWarnings("resource")
    public class Project1 {
        public static void main(String[]args){
    
          Scanner age = new Scanner (System.in);
          System.out.println("Enter your age");
          int a = age.nextInt();
          System.out.println("Enter you name");
          String b = age.next();
    
      try{  
         if(a >125 && a<0){         
            throw new AgeExcpt();
         }          
        }
        catch(AgeExcpt ex){
        System.out.println("You entered an invalid number" + a);        
        }
        finally{
            System.out.println("Your age is " + a);
            System.out.println("Your name is " + b);
        }   
    }
    }
    
     if(a >125 || a< 0){         
        throw new AgeExcpt();
     } 
    
    System.out.println("Enter the Employee age::");
    age = sc.nextInt();
    try {
        if(age < 18) 
            throw new AgeException("Invalid age");
        else
            System.out.println("Valid age");
    }
    catch (AgeException e) {                
        System.out.println(e+"--Age must be greater than 18 !!");
        System.out.println("Please enter the correct Employee age again::");
        age = sc.nextInt();
    }
    
    what if again the age is wrong?????????