加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:37:42 所属栏目:百科 来源:网络整理
导读:您显然能够在不丢弃.NET中的堆栈跟踪的情况下重新抛出异常. 但它似乎没有起作用. 因此我遵循的基本用法是: [WebMethod] public void ExceptionTest() { try { throw new Exception("An Error Happened"); } catch (Exception ex) { evlWebServiceLog.WriteE
您显然能够在不丢弃.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);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读