当用 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);
}
}
我目前正在尝试用 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);
}
}