改过不起作用?[英] Rethrowing does not work?

问题描述

我有些不明白.捕获的异常堆栈指向一个
在 catch 块中无参数"抛出".同时,众所周知
这些语句重新抛出原始异常.因此,我预计,
堆栈指向原始的 ''throw e'' 代码行.

推荐答案

valentin,

不,它没有.如果你用 "throw
重新抛出原始异常e",然后你抛出异常的点改变了,重置
异常调用堆栈.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"瓦伦丁·蒂霍米罗夫"<V_*********@best.ee写在留言
新闻:哇**************@TK2MSFTNGP02.phx.gbl...
>我有些不明白.捕获的异常堆栈指向捕获块中的
无参数"抛出".同时,众所周知
这些语句重新抛出了原来的异常.因此,我希望
堆栈指向原始的"throw e"代码行.

哦,对不起.我重新整理了我的数据.似乎''throw''和''throw
e'' rethrow
http://msdn2.microsoft.com/en-us/lib...sw(VS.71).aspx 但是我的
以前的数据告诉''throw'',给定一个可抛出的对象,引发一个新的
例外.这就是区别."c# rethrow"上的第二场谷歌比赛
申明此 http://bartdesmet.net/博客/bart/arc...3/12/3815.aspx

反正我不明白为什么re-throw会覆盖where
那行代码重新抛出异常的行引发了异常.我的理由是
调用栈使得值指向异常的原因
而不是最后一个处理它的地方.

valentin tihomirov <V_*********@best.eewrote:
我不明白的东西.捕获的异常堆栈指向一个
在 catch 块中无参数"抛出".同时,众所周知
这些语句重新抛出原始异常.因此,我预计,
堆栈指向原始的 ''throw e'' 代码行.
您能否发布一个简短但完整的程序来演示
有问题吗?

请参阅 http://www.pobox.com/~skeet/csharp/complete.html了解
详情我的意思.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet 博客:http://www.msmvps.com/jon.skeet
如果回群,请不要也给我发邮件

本文地址:https://www.itbaoku.cn/post/1050552.html