我有一个使用switch的驱动菜单类,旁边是一个类,该类在输入错误输入时抛出异常,如何在异常后返回并要求用户再次输入数据。
java class diamond:
public class Diamond
{
private int x;
public Diamond(int x) throws IllegalArgumentException
{
if ((x % 2) == 0)
{
System.out.println("\nx must be odd.");
throw new IllegalArgumentException("x must be odd.");
}
this.x = x;
}
答案 0 :(得分:0)
请参阅this question regarding exceptions in general以及this Java Tutorial。
我假设您有一些代码接受用户输入,然后创建Diamond
类的实例。
您可以在try-catch块中包装创建Diamond
实例的代码。
所以,像这样:
Diamond d = null;
try{
d = new Diamond(userInput);
}catch(IllegalArgumentException e){
//Handle the exception
}
但是,由于输入问题而不是编程问题导致抛出此异常,我倾向于倾向于在此处使用已检查的异常。
作为Java Tutorial的一般规则:
如果可以合理地期望客户端从异常中恢复,请将其作为已检查的异常。如果客户端无法执行任何操作以从异常中恢复,请将其设置为未经检查的异常。