Array没有传递第一个catch。它在第一次尝试时抛出异常。 if语句在InvalidTimeException中显示正确。可能是什么问题呢?提前谢谢。
public static void main (String [] args){
Scanner kybd = new Scanner (System.in);
Exception TimeInUseException = new Exception("Time is taken!");
Exception InvalidTimeException = new Exception("Time is not valid!");
String [] schedule = new String[5];
for(int i = 0; i<schedule.length; i++){
System.out.println("Schedule appointment at either 1,2,3,4,5 or 6 o'clock pm ");
schedule [i]= kybd.nextLine();
try{
if(schedule[i]==schedule[i+1])
throw TimeInUseException;
}//end of try
catch(Exception e){
System.out.println(e.getMessage());
System.out.print("Program Crashed!");
break;
}//end of catch
try{
if(schedule[i]!="1" || schedule[i]!="2" || schedule[i]!="3" || schedule[i]!="4" || schedule[i]!="5" || schedule[i]!="6")
throw InvalidTimeException;
}//end of try
catch(Exception e){
System.out.println(e.getMessage());
System.out.print("Program Crashed!");
break;
}//end of catch
}//end of forLoop
}//end of main
} //
的结尾答案 0 :(得分:0)
在第
行 if(schedule[i]==schedule[i+1])
schedule[i+1]
尚未实例化。所以你要与 null 进行比较。由于if
不为空,schedule[i]
语句不会成立。 not null == null 评估为False。
建议:创建一个列表并将使用过的时间添加到List或更好的HashSet。将新条目与存储值进行比较,以查看它是否已被使用。