未处理的异常,虽然我清楚地用Java处理了异常

时间:2018-07-08 00:15:33

标签: java javafx exception-handling

当我从事我的一个小项目时,我在想编译代码时遇到Java编译器给我的怪异错误。帮忙的人说我有一个未处理的Interruptedexception。这是因为我使用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());

这是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){

    }

}

0 个答案:

没有答案