如何调试重传处理程序中抛出的异常?

时间:2018-10-03 09:11:11

标签: c# .net-core rebus

推荐的方法是在localhost中的开发过程中调试像这样的处理程序中的异常:

class MyEventHandler : IHandleMessages<MyEvent>
{
    public async Task Handle(BlogLinkCreated message)
    {
        await Task.Delay(100);
        throw new Exception();
    } 
}

我在调试输出中看到了一些异常,但是我不知道它们来自何处。我想查看stacktrace,最好是通过调用堆栈,并查看局部变量的值。

1 个答案:

答案 0 :(得分:0)

Rebus会记录执行处理程序时捕获到的异常,包括异常通过在它们上调用.ToString()所揭示的所有内容。

这包括完整的堆栈跟踪,并且如果您正在运行代码的Debug版本,它还将包括源文件行号。

应该很容易-只要您没有以某种方式禁用日志记录-找出哪一行代码会抛出任何冒泡的异常,以便Rebus看到。

如果您使用Visual Studio开发代码,也可以直接按F5键(或使用附加的调试器启动应用程序使用的任何热键),然后等待调试器打破异常。 / p>