“ throw”和“ throw ex”之间有区别吗?

“ throw”和“ throw ex”之间有区别吗?,第1张

“ throw”和“ throw ex”之间有区别吗?

是,有一点不同;

  • throw ex
    重置堆栈跟踪(因此您的错误似乎源自
    HandleException
  • throw
    不会-原罪犯将得到保留。

    static void Main(string[] args)

    {
    try
    {
    Method2();
    }
    catch (Exception ex)
    {
    Console.Write(ex.StackTrace.ToString());
    Console.ReadKey();
    }
    }

    private static void Method2()
    {
    try
    {
    Method1();
    }
    catch (Exception ex)
    {
    //throw ex resets the stack trace Coming from Method 1 and propogates it to the caller(Main)
    throw ex;
    }
    }

    private static void Method1()
    {
    try
    {
    throw new Exception(“Inside Method1”);
    }
    catch (Exception)
    {
    throw;
    }
    }



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5011870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存