【问题标题】:How to fix "System.Reflection.TargetInvocationException has been thrown"如何修复“System.Reflection.TargetInvocationException 已被抛出”
【发布时间】:2017-02-25 06:42:25
【问题描述】:

我正在学习制作不和谐机器人的教程,在学习了设置机器人的基础知识后,我一直遇到这个异常:

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);
            });

我不知道如何解决这个问题,所以任何帮助将不胜感激。

(由于这是我在这里的第一篇文章,任何关于如何改进我的帖子的建议也非常感谢。)

【问题讨论】:

  • 应该有内部异常,看看吧
  • @Gusman 我应该寻找什么?
  • 内部异常会有真正的异常

标签: c# bots


【解决方案1】:

您的异常的真正原因是对您隐藏。要解决此问题,您将需要查看内部异常(如果需要,还需要查看该异常的内部异常等等)。这将让您了解问题的根本原因并让您了解如何解决它。

您可以在调试模式下代码中断时查看内部​​异常;

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

一旦您找到异常的真正原因,我建议您发布一个新问题,询问如何解决该特定问题(如果您自己无法解决)。

【讨论】:

  • 除非您捕获它,否则此异常不会提供内部异常,在许多情况下,该异常发生在哪里是未知的,因此无济于事。
【解决方案2】:

在我的情况下,它是由某些内部代码中的一些异常引起的,并且该异常是通过堆栈抛出的,当浮出水面并显示异常窗口时,异常消息已丢失,因此显示无用消息@ 987654324@

解决方法是,打开异常设置窗口,检查所有项目,以便在任何类型的异常发生时都会中断,这样你就可以在最初始的位置捕获异常,从而可以很容易地理解错误原因。

我的想法来自HERE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2017-02-18
    相关资源
    最近更新 更多