Получение исключения в onGuildMessageReceivedEvent - Discord JDA

Я создаю бота 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; должен быть пойман или объявлен брошенным

Я был бы очень признателен за помощь после того, как так долго пытался решить мою проблему.

0 ответов

Некоторая функция, которую вы используете, генерирует исключение, которое необходимо обработать (отмеченное исключение). Всякий раз, когда у вас есть проблема с исключением, вы должны сначала погуглить исключение. Например, в этом случае вы можете вставить "незарегистрированное исключение java.lang.Exception; должно быть обнаружено или объявлено как выброшенное" в поисковую систему Google, и вы получите свое объяснение.

Вот руководство по исключениям: https://www.tutorialspoint.com/java/java_exceptions.htm

Кроме того, ваше сообщение на Stackru должно быть посвящено самой ошибке, другими словами "незарегистрированное исключение java.lang.Exception".

Другие вопросы по тегам