java - 未处理的异常,而我清楚地处理 Java 中的异常
问题描述
当我在我的一个小项目上工作时,当我想编译代码时,我偶然发现了 Java 编译器给我的一个奇怪的错误。编译器说我有一个未处理的中断异常。这是因为我使用 Thread.sleep()。在我的代码中,您可以清楚地看到我处理了异常,但编译器仍然坚持我不处理。我没有这样做,我还尝试使用 try/catch 块,但这也没有帮助。奇怪的是,如果我做 buttonpress(); 编译器不会给我一个错误。而不是 generate.setOnAction(e -> buttonpress()); (生成只是一个按钮)。java 抱怨的那一行是我的第一个代码块中的最后一行。这是我的代码:
@FXML
@Override
public void start(Stage primaryStage) throws InterruptedException, IOException {
window = primaryStage;
window.setTitle("RNG");
Parent root = FXMLLoader.load(getClass().getResource("FXML.fxml"));
lowerbound = (TextField) root.lookup("#lowerboundinput");
upperbound = (TextField) root.lookup("#upperboundinput");
output = (Text) root.lookup("#randomnumberoutput");
Button generate = (Button) root.lookup("#generatebutton");
generate.setOnAction(e -> buttonpress());
这是按钮按下方法:
public static void buttonpress()throws InterruptedException{
if(!lowerbound.getText().equals("")|| !upperbound.getText().equals("")) {
RandomNumberGenerator.JavaFXLauncher(lowerbound.getText(), upperbound.getText());
}else{
setOutput("EMPTY");
}
}
这里是 JavaFXLauncher 方法:
public static void JavaFXLauncher(String firstbound, String secondbound) throws InterruptedException{
int random;
try {
if(inputvalidator(firstbound, secondbound)) {
random = Integer.parseInt(firstbound) + (int) (Math.random() * ((Integer.parseInt(secondbound) - Integer.parseInt(firstbound)) + 1));
Main.setOutput(Integer.toString(random));
TimeUnit.MILLISECONDS.sleep(50);
//some other code
} catch(NumberFormatException e){
Main.setLowerbound("Pick smaller number");
Main.setUpperbound("Integer overflow");
} catch (InterruptedException f){
}
}
解决方案
推荐阅读
- mongodb - 如何根据嵌套字段值过滤 mongo 集合?
- laravel - 询问如何在刀片 Laravel 中显示数据透视表中的数据
- mysql - 行号和联合
- javascript - 如何使用 JavaScript 或 Angular 从 Web 下载文件到特定的本地文件夹
- python - 如何使用大型 numpy 数组优化 Python 中的内存分配?
- consul - 通过 CIDR 块隔离 Consul
- visual-studio-code - 如何使用 TextMate 规则为某些字符着色,以便在 vs 代码中突出显示语法
- php - 处理过期缓存文件(磁盘 io 使用)的最佳做法是什么?
- shell - 如何从 shell 脚本访问 tmux 中的 time 命令?
- google-sheets - 如何使用谷歌表格条件格式选项将列与单元格 id 而不是值进行比较?