我正在学习一个关于制造一个不和谐的机器人的教程,在遵循了设置bot的基本知识之后,我一直遇到这个例外:
System.Reflection.TargetInvocationException被抛出了。调用的目标引发了异常。
这是我的代码:
using Discord.Commands;
using Discord;
using System;
namespace TestBot
{
public class MyBot
{
DiscordClient discord;
public MyBot()
{
discord = new DiscordClient(x =>
{
x.LogLevel = LogSeverity.Info;
x.LogHandler = Log;
});
discord.UsingCommands(x =>
{
x.PrefixChar = '!';
x.AllowMentionPrefix = true;
});
var commands = discord.GetService<CommandService>();
commands.CreateCommand("test")
.Do(async (e) =>
{
await e.Channel.SendMessage("response");
});
discord.ExecuteAndWait(async () =>
{
await discord.Connect("BOT_TOKEN", TokenType.Bot);
});
}
private void Log(object sender, LogMessageEventArgs e)
{
Console.WriteLine(e.Message);
}
}
}MonoDevelop说这个异常发生在这段代码上:
discord.ExecuteAndWait(async () =>
{
await discord.Connect("BOT_TOKEN", TokenType.Bot);
});我不知道如何解决这个问题,所以任何帮助都是非常感谢的。
(由于这是我在这里的第一篇文章,任何关于如何改进我的职位的建议也会受到欢迎。)
发布于 2016-10-16 07:25:17
你异常的真正原因是被隐藏在你面前。要解决这个问题,您需要查看内部异常(如果需要,则查看该异常的内部异常,等等)。这将使您能够看到问题的根本原因,并允许您解决如何解决它。
当您的代码在调试模式下中断时,可以查看内部异常;

单击“查看详细信息”将允许您查看有关异常的更多信息;

一旦你找到了异常的真正原因,我建议你发布一个新的问题,询问如何解决这个特定的问题(如果你自己解决不了)。
发布于 2017-11-17 06:21:34
在我的例子中,它是由一些内部代码中的一些异常引起的,异常是通过堆栈抛出的,当出现异常窗口时,异常消息已经丢失,因此它显示了无用的消息System.Reflection.TargetInvocationException has been thrown.
解决方案是打开“异常设置”窗口,检查所有项,以便在任何类型的异常发生时都会中断,这样您就可以在最开始的位置捕捉到异常,即错误原因可以很明显地终止。

我的想法来自这里。
https://stackoverflow.com/questions/40066772
复制相似问题