当用 throws 关键字调用 void 时,所有抛出的错误都适用于我调用 void 的地方

when calling void with throws keyword, all thrown errors apply to where i call the void

我目前正在尝试用 java 制作一个 shift 钥匙架,使用重音作为切换和机器人是我能找到的唯一方法,它非常简单。该程序按照名称的含义进行操作,并为我按住 shift 键。如果您想知道它的用处,请制作用于星际建筑的程序,因为有大写锁定功能。然而,当使用机器人时,我不得不抛出一些异常,但它们随后出现在我称之为 void

的地方

我找不到任何解决方案,可能是因为我正在使用 JNativeHook 库创建一个键盘记录器,该键盘记录器将对坟墓符号做出反应。我还是个新手,我从网上的片段中拼凑了很多。

这是我的错误来源,完整的程序可用here 我会 post 一个最小可重现的例子,但我不能,因为我不知道哪些部分对这一部分的功能至关重要。

//tried to put throws in nativeKeyPressed to get rid of the exceptions but then that gives me an exception saying i can't do that because it causes clashing
public void nativeKeyPressed(NativeKeyEvent e){
        System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));

        if (e.getKeyCode() == NativeKeyEvent.VC_BACKQUOTE) {
            toggle(); //get IOException, AWTException, and InterruptedException whenever i put throws on my toggle() void
        }
    }

        //throw exceptions so robot has no conflicts
    public static void toggle() throws IOException, AWTException, InterruptedException{
        bool = !bool;
        Robot r = new Robot();

        if (bool = true) {

        } else if (bool = false) {

        }

我希望它没有错误,但是 Robot() 如果我不抛出它们就会有异常,并且 toggle(); 有我从 public static void toggle() 抛出的任何异常。我对机器人以外的方法持开放态度,但我找不到其他方法。

除非您预料到任何这些异常并且知道如何处理它们,否则只需包装您的异常

public static void rethrowException (Exception ex) {
  throw new RuntimeException(ex);
}
    //throw exceptions so robot has no conflicts
public static void toggle() {
  try {
    bool = !bool;
    Robot r = new Robot();

    if (bool = true) {

    } else if (bool = false) {

    }
  } catch (IOException|AWTException|InterruptedException ex) {
    throw new RuntimeException(ex);
  }
}