Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ContextException:无法捕获未知禁令(Discord Java)_Java_Discord_Discord Jda - Fatal编程技术网

ContextException:无法捕获未知禁令(Discord Java)

ContextException:无法捕获未知禁令(Discord Java),java,discord,discord-jda,Java,Discord,Discord Jda,我的unban命令有时会抛出ContextException,当您为未被禁止的人解除绑定时。 我想用一个try-catch块来捕获它,通知用户他们试图解除ban的人没有被禁止。这就是我所尝试的: 试一试{ event.getGuild.unbanevent.getMessage.getContentRaw.substring8.queue; }catchContextException e{ event.getChannel.SendMessage未禁止此用户!.queue; 回来 } 但是ca

我的unban命令有时会抛出ContextException,当您为未被禁止的人解除绑定时。 我想用一个try-catch块来捕获它,通知用户他们试图解除ban的人没有被禁止。这就是我所尝试的:

试一试{ event.getGuild.unbanevent.getMessage.getContentRaw.substring8.queue; }catchContextException e{ event.getChannel.SendMessage未禁止此用户!.queue; 回来 }
但是catch行只是说异常“net.dv8tion.jda.api.exceptions.ContextException”从未在相应的try块中抛出。

ContextException处理异步异常。因此,try块无法捕获异常。 您可以像这样更改代码

event.getGuild.unbanevent.getMessage.getContentRaw.substring8.queue 无效的 错误->{ if error.getMessage.equals1006:未知禁止{ event.getChannel.SendMessage未禁止此用户!.queue; } } ;
ContextException处理异步异常。因此,try块无法捕获异常。 您可以像这样更改代码

event.getGuild.unbanevent.getMessage.getContentRaw.substring8.queue 无效的 错误->{ if error.getMessage.equals1006:未知禁止{ event.getChannel.SendMessage未禁止此用户!.queue; } } ;
在本例中,您的异常甚至不是ContextException,而是一个。由于队列。。。如果在不同的线程中执行异步操作,则不能从此处引发异常。相反,您应该使用失败回调,如所述

您可以使用来处理特定的

例如:

字符串userId=event.getMessage.getContentRaw.substring8; ErrorHandler=new ErrorHandler.handleErrorResponse.UNKNOWN\u-BAN,错误->{ event.getChannel.SendMessage未禁止此用户!.queue; }; event.getGuild .无抵押 .queuenull,处理程序;
ContextException仅用于告诉您错误源于代码的何处。由于实际的异常发生在其他线程上,因此您没有上下文来查找问题。

在本例中,您的异常甚至不是ContextException,而是一个异常。由于队列。。。如果在不同的线程中执行异步操作,则不能从此处引发异常。相反,您应该使用失败回调,如所述

您可以使用来处理特定的

例如:

字符串userId=event.getMessage.getContentRaw.substring8; ErrorHandler=new ErrorHandler.handleErrorResponse.UNKNOWN\u-BAN,错误->{ event.getChannel.SendMessage未禁止此用户!.queue; }; event.getGuild .无抵押 .queuenull,处理程序; ContextException仅用于告诉您错误源于代码的何处。因为实际的异常发生在其他线程上,而这些线程不提供查找问题的上下文。

最好用于此。最好用于此。