我的unban
命令有时会抛出ContextException,当你解除对未被禁止的人的绑定时。我想用一个try catch
块来捕捉它,通知用户他们试图解锁的人没有被禁止。这就是我尝试的:
try {
event.getGuild().unban(event.getMessage().getContentRaw().substring(8)).queue();
} catch(ContextException e) {
event.getChannel().sendMessage("This user isn't banned!").queue();
return;
}
但是catch()
行只显示了Exception'net。dv8tion。吉达。应用程序编程接口。例外。ContextException’从不在相应的try块中抛出
。
ContextException处理异步异常。因此,try块无法捕获异常
您可以这样更改代码。
java prettyprint-override">event.getGuild().unban(event.getMessage().getContentRaw().substring(8)).queue(
null,
(error) -> {
if (error.getMessage().equals("10026: Unknown Ban")) {
event.getChannel().sendMessage("This user isn't banned!").queue();
}
}
);
在这种情况下,您的异常甚至不是ContextExctive
,而是错误响应异常。由于队列(...)
在不同的线程中执行异步操作,因此不能从这里抛出异常。相反,您应该使用留档所描述的失败回调。
您可以使用ErrorHandler来处理特定的错误响应。
例:
String userId = event.getMessage().getContentRaw().substring(8);
ErrorHandler handler = new ErrorHandler().handle(ErrorResponse.UNKNOWN_BAN, (error) -> {
event.getChannel().sendMessage("This user isn't banned!").queue();
});
event.getGuild()
.unban(userId)
.queue(null, handler);
ContextException
仅用于告诉您错误源于代码的何处。因为实际的异常发生在其他线程上,因此没有上下文来查找问题。
问题内容: 当我调用使用 CXF 构建的特定静态服务方法时,出现以下错误,任何人都知道为什么以及如何解决它? 发生JAXBException:com.octory.ws.dto类。在此上下文中, ProfileDto 或其任何超类都不为人知。 以下是服务方法和相关的DTO: SearchResultDto: ProfileDto: 问题答案: 您的班级未在中引用。尝试添加到中。
所以 我有一个函数,有一个回调,所以我把它包装在一个挂起函数使用,但当它错误了,它是崩溃整个应用程序。 这里有一个概念是正在发生的事情。 2022-03-04 16:09:45.410 19289-19438/in.app.androidE/AndreidRuntime: FATAL EXCEPTION: DefaultDispatcher-Worers-3进程:in.app.android,PI
我通过激发Baeldung在Spring Security页面上的防止暴力身份验证尝试,为我的登录服务实现了暴力阻止机制,如下所示: 当用户未经验证时,LoginService抛出InvalidCredentialException(),然后我试图在AuthenticationFailureListener类中捕获此异常: 当出现错误时,则登录测试服务。将调用loginFailed()方法。然而,
问题内容: 为什么Java中的某些异常未被捕获?这是代码由于没有处理的异常而完全失败。(Java版本1.4)。 我得到一个 但这有效 我懂了 我以为捕获异常会捕获所有异常?如何捕获Java中的所有异常? 问题答案: 因为某些异常不是源自-例如和。 基本上,类型层次结构是: 只能抛出派生类,因此,如果您抓住,那实际上就可以抓住一切。 ,以及任何异常,从获得 其他 比那些源自数作为 检查的异常 -他们
为什么Java中的一些异常不被捕获?这是完全失败的代码,有一个未处理的异常。(Java版本1.4)。 我在线程“main”java中得到了一个 但这行得通 我在java中没有发现任何方法错误。lang.NoSuchMethodError: 我以为捕获异常会捕获所有异常?如何捕获java中的所有异常?
我尝试在Facebook Messager上上传一个图像/文件,其示例URL为https://www.facebook.com/messages/t/471646182511990(如果你想尝试,你需要在Chrome浏览器上打开Facebook Messager并获得有效的URL)。但它失败了,出现了“未知命令”异常。 我搜索但找不到任何合适的答案。一个线程“https://stackoverfl