Java 时间单位错误
Java TimeUnit error
我想用数字字段和一个按钮制作一个 Java 程序。
当您单击按钮时,它会等待并且 Numberfield.The 整数中的时间可以正常工作,但该功能不起作用。
代码如下:
public void jButton1_ActionPerformed(ActionEvent evt) {
sekunden = Integer.parseInt(jNumberField3.getText());
minuten = Integer.parseInt(jNumberField2.getText());
stunden = Integer.parseInt(jNumberField1.getText());
zeit = sekunden + minuten*60 + stunden*60*60;//berechnet die zeit in sekunden
TimeUnit.SECONDS.sleep(zeit);//here is the error
System.out.println("zeit");
} // end of jButton1_ActionPerformed
错误消息如下所示:
ES.java:78:27: error: unreported exception InterruptedException; must be caught or declared to be thrown TimeUnit.SECONDS.sleep(zeit);
方法调用 TimeUnit.SECONDS.sleep(zeit)
抛出必须捕获的 InterruptedException
:
public void jButton1_ActionPerformed(ActionEvent evt) {
try {
sekunden = Integer.parseInt(jNumberField3.getText());
minuten = Integer.parseInt(jNumberField2.getText());
stunden = Integer.parseInt(jNumberField1.getText());
zeit = sekunden + minuten*60 + stunden*60*60;//berechnet die zeit in sekunden
TimeUnit.SECONDS.sleep(zeit);//here is the error
System.out.println("zeit");
}catch (InterruptedException e){
//handle the exception
}
}
您需要处理调用 sleep()
时可能发生的潜在 InterruptedException
。这就是您的代码出现编译错误的原因。
请查看 JavaDocs 上的 Catching and Handling Exceptions,了解有关异常处理的更多详细信息。
对于您的情况,您可以通过处理以下异常轻松解决它:
public void jButton1_ActionPerformed(ActionEvent evt) {
sekunden = Integer.parseInt(jNumberField3.getText());
minuten = Integer.parseInt(jNumberField2.getText());
stunden = Integer.parseInt(jNumberField1.getText());
zeit = sekunden + minuten*60 + stunden*60*60;//berechnet die zeit in sekunden
try {
// tries to call sleep
TimeUnit.SECONDS.sleep(zeit);//here is the error
} catch (InterruptedException e) {
// handles any possible exception during the call to "sleep()"
e.printStackTrace(); // prints the exception stack trace to the console
}
System.out.println("zeit");
} // end of jButton1_ActionPerformed
异常处理中的一些很好的参考资料是:
- Java exception handling
- Best practices in handling java exceptions
我想用数字字段和一个按钮制作一个 Java 程序。 当您单击按钮时,它会等待并且 Numberfield.The 整数中的时间可以正常工作,但该功能不起作用。
代码如下:
public void jButton1_ActionPerformed(ActionEvent evt) {
sekunden = Integer.parseInt(jNumberField3.getText());
minuten = Integer.parseInt(jNumberField2.getText());
stunden = Integer.parseInt(jNumberField1.getText());
zeit = sekunden + minuten*60 + stunden*60*60;//berechnet die zeit in sekunden
TimeUnit.SECONDS.sleep(zeit);//here is the error
System.out.println("zeit");
} // end of jButton1_ActionPerformed
错误消息如下所示:
ES.java:78:27: error: unreported exception InterruptedException; must be caught or declared to be thrown TimeUnit.SECONDS.sleep(zeit);
方法调用 TimeUnit.SECONDS.sleep(zeit)
抛出必须捕获的 InterruptedException
:
public void jButton1_ActionPerformed(ActionEvent evt) {
try {
sekunden = Integer.parseInt(jNumberField3.getText());
minuten = Integer.parseInt(jNumberField2.getText());
stunden = Integer.parseInt(jNumberField1.getText());
zeit = sekunden + minuten*60 + stunden*60*60;//berechnet die zeit in sekunden
TimeUnit.SECONDS.sleep(zeit);//here is the error
System.out.println("zeit");
}catch (InterruptedException e){
//handle the exception
}
}
您需要处理调用 sleep()
时可能发生的潜在 InterruptedException
。这就是您的代码出现编译错误的原因。
请查看 JavaDocs 上的 Catching and Handling Exceptions,了解有关异常处理的更多详细信息。
对于您的情况,您可以通过处理以下异常轻松解决它:
public void jButton1_ActionPerformed(ActionEvent evt) {
sekunden = Integer.parseInt(jNumberField3.getText());
minuten = Integer.parseInt(jNumberField2.getText());
stunden = Integer.parseInt(jNumberField1.getText());
zeit = sekunden + minuten*60 + stunden*60*60;//berechnet die zeit in sekunden
try {
// tries to call sleep
TimeUnit.SECONDS.sleep(zeit);//here is the error
} catch (InterruptedException e) {
// handles any possible exception during the call to "sleep()"
e.printStackTrace(); // prints the exception stack trace to the console
}
System.out.println("zeit");
} // end of jButton1_ActionPerformed
异常处理中的一些很好的参考资料是:
- Java exception handling
- Best practices in handling java exceptions