这是我第一次使用异常处理,所以要谨慎。我有一个简单的Blob类,可以接受一个ID,该ID必须在30到50之间,否则会引发异常。
public class Blob {
int id;
public Blob() {
}
public Blob(int id) throws Exception {
this.id = id;
if (id < 30 || id > 50)
throw new Exception ("id = " +id+ ", must be between 30 and 50 inclusive");
}
}
它应该提示用户输入一个ID,如果它不在30到50之间,则抛出异常,并且应该继续直到用户输入有效的输入然后简单地显示ID号。
public class BlobCreator {
public static void main(String[] args) {
int id;
Scanner scan = new Scanner(System.in);
System.out.println("Enter ID number: ");
id = scan.nextInt();
do {
try {
Blob b = new Blob(id);
}
catch (Exception e) {
System.out.println(e);
}
System.out.println("Enter a different ID: ");
id = scan.nextInt();
}
while(true);
}
System.out.println("Blob ID: " +id);
}
我认为我使用的是正确的掷球接球,但我的循环动作不正确,因此我认为这应该是一个简单的解决方法,但我不能做到完全正确。还是像我这样使用while循环,对于这种情况有最好的方法,还是有更好的循环来进行掷和接球的方法?
感谢您提供的所有帮助
break;
代码成功执行后,应放置。
do {
try {
Blob b = new Blob(id);
break;
}
catch (Exception e) {
System.out.println(e);
}
System.out.println("Enter a different ID: ");
id = scan.nextInt();
} while(true);
因此,每次循环到达其主体的末端时,都会脱离循环。blob
成功创建后,您应该只休息一下。虽然我不明白为什么你break
还是这么做。该while
循环可以检查输入的输入是有效的,只是停止循环。
我while
在do-while
循环中进行了修改...使用true
循环将永远运行,除非构造函数未抛出异常。这使代码更加通用(如果您修改Blob构造的条件,则不会必须修改while
循环条件)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句