【问题标题】:Getting Exception In onGuildMessageReceivedEvent - Discord JDA在 onGuildMessageReceivedEvent 中获取异常 - Discord JDA
【发布时间】:2019-05-06 03:22:09
【问题描述】:

我正在制作一个 Discord JDA 机器人,当用户发送以下消息时:Prefix("$") + hastebin + 他们的代码,机器人将创建一个对 hastebin 的请求并粘贴他们的代码,之后他将获取粘贴 URL 并将其打印到控制台(我将在解决问题后将其作为消息发送)。

这是我的 HastebinCommand 类:

package events;
import main.Hastebin;

import Info.Info;
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;

import java.lang.*;

public class HastebinCommand extends ListenerAdapter
{
    Info info;
    Hastebin hastebin;
    @Override
    public void onGuildMessageReceived(GuildMessageReceivedEvent event)
    {
        String[] message = event.getMessage().getContentRaw().split(" ");

    if (message[0].equalsIgnoreCase(info.prefix + "hastebin") || message[0].equalsIgnoreCase(info.prefix + "haste"))
    {
        if (message.length == 1)
        {
            //Send an error message
        }
        else
        {
            String code = "";
            for (int i = 1; i < message.length; i++)
            {
                code = code + "" + message[i];
            }
            System.out.println(hastebin.paste(code));
        }
    }
}
}

这是我的 Hastebin 请求类:

package main;

import org.json.JSONObject;

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;


public class Hastebin
{

    public static String paste(String content) throws Exception{
    final HttpClient client = HttpClient.newHttpClient();
    final HttpRequest request = HttpRequest.newBuilder(URI.create("https://hastebin.com/documents"))
            .POST(HttpRequest.BodyPublishers.ofString(content)).build();

    final HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

    final String responseContent = response.body();
    final JSONObject responseJson = new JSONObject(responseContent);
    final String key = responseJson.getString("key");
    return "https://hastebin.com/" + key;
}
}

我的错误:

C:\Users\user\Documents\Java\Java Projects\DiscordJDA\SpoonfeedingBot\src\events\HastebinCommand.java 错误:(32, 50) java: 未报告的异常 java.lang.Exception;必须被抓住或宣布被扔掉

在尝试解决我的问题这么久之后,我真的很感激能得到帮助。

【问题讨论】:

标签: java bots discord checked-exceptions discord-jda


【解决方案1】:

您正在使用的某些函数引发了必须处理的异常(已检查异常)。每当您遇到异常问题时,您都应该先用谷歌搜索异常。例如,在这种情况下,您可以在 google 搜索引擎中粘贴“未报告的异常 java.lang.Exception;必须捕获或声明为抛出”,然后您就会得到解释。

这里有一个关于异常的教程:https://www.tutorialspoint.com/java/java_exceptions.htm

此外,您的 StackOverflow 帖子应该是关于错误本身的,换句话说,“未报告的异常 java.lang.Exception”。

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 2021-05-25
    • 2021-07-26
    • 2021-02-06
    • 2021-05-15
    • 2021-05-17
    • 2021-03-06
    • 2020-10-17
    • 2020-11-16
    相关资源
    最近更新 更多