c# – 在堆栈跟踪中使用正确的行号重新排序异常

前端之家收集整理的这篇文章主要介绍了c# – 在堆栈跟踪中使用正确的行号重新排序异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
您显然能够在不丢弃.NET中的堆栈跟踪的情况下重新抛出异常.

但它似乎没有起作用.

因此我遵循的基本用法是:

[WebMethod]
    public void ExceptionTest()
    {
        try
        {
            throw new Exception("An Error Happened");
        }
        catch (Exception ex)
        {
            evlWebServiceLog.WriteEntry(ex.ToString(),EventLogEntryType.Error);
            throw;
        }
    }

问题是,抛出行中异常中的行号;线,而不是原来扔新线.

我在一个简单的exe项目中测试了它,没有登录到Windows日志行.它没有任何区别,堆栈跟踪总是包含错误的行号,使其不太有用.

它为什么这样做?
我该怎么做?

解决方法

如果将其置于内部异常中,则不会丢失原始异常.
[WebMethod]
public void ExceptionTest()
{
    try
    {
        throw new Exception("An Error Happened");
    }
    catch (Exception ex)
    {
        evlWebServiceLog.WriteEntry(ex.ToString(),EventLogEntryType.Error);
        throw new Exception("Your message",ex);
    }
}
原文链接:https://www.f2er.com/csharp/244270.html

猜你在找的C#相关文章