首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复"System.Reflection.TargetInvocationException已抛出“

如何修复"System.Reflection.TargetInvocationException已抛出“
EN

Stack Overflow用户
提问于 2016-10-16 04:18:16
回答 2查看 17.1K关注 0票数 7

我正在学习一个关于制造一个不和谐的机器人的教程,在遵循了设置bot的基本知识之后,我一直遇到这个例外:

System.Reflection.TargetInvocationException被抛出了。调用的目标引发了异常。

这是我的代码:

代码语言:javascript
复制
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说这个异常发生在这段代码上:

代码语言:javascript
复制
discord.ExecuteAndWait(async () =>
            {
                await discord.Connect("BOT_TOKEN", TokenType.Bot);
            });

我不知道如何解决这个问题,所以任何帮助都是非常感谢的。

(由于这是我在这里的第一篇文章,任何关于如何改进我的职位的建议也会受到欢迎。)

EN

回答 2

Stack Overflow用户

发布于 2016-10-16 07:25:17

你异常的真正原因是被隐藏在你面前。要解决这个问题,您需要查看内部异常(如果需要,则查看该异常的内部异常,等等)。这将使您能够看到问题的根本原因,并允许您解决如何解决它。

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

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

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

票数 6
EN

Stack Overflow用户

发布于 2017-11-17 06:21:34

在我的例子中,它是由一些内部代码中的一些异常引起的,异常是通过堆栈抛出的,当出现异常窗口时,异常消息已经丢失,因此它显示了无用的消息System.Reflection.TargetInvocationException has been thrown.

解决方案是打开“异常设置”窗口,检查所有项,以便在任何类型的异常发生时都会中断,这样您就可以在最开始的位置捕捉到异常,即错误原因可以很明显地终止。

我的想法来自这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40066772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档