当我只向方法本身抛出InvalidHrExcep时,我不知道为什么我的getHours()捕获InputMismatchException。谁能启发我?
public static void main (String [] args)
{
do
{
try
{
getHours();
getAmPm();
accept = true;
}
catch(InvalidHrExcep h)
{
System.out.println (h);
accept = false;
console.nextLine();
}
catch (InputMismatchException e)
{
System.out.println (e);
System.out.println("Input must be AM or PM.");
accept = false;
console.nextLine();
}
}while(accept == false);
}
我的getHours()方法
public static int getHours() throws InvalidHrExcep
{
System.out.print ("Enter hours: ");
int hour = console.nextInt();
if(hour > 0 && hour <= 12)
{
return hour;
}
else
{
throw new InvalidHrExcep();
}
}
答案 0 :(得分:0)
http.get
绝对可以引发console.nextInt()
异常,并且您的InputMismatchException
方法不必在getHours
子句中指定该异常,因为它是未经检查的异常。 / p>
如果您不希望throws
抛出该异常,则应将getHours()
放在try块中并捕获它。