我有以下代码:捕获异常,添加数据,并重新抛出
try
{
OnInitialize();
}
catch (PageObjectLifecycleException exception)
{
exception.OldLifecycleState = CurrentLifecycleState;
exception.RequestedLifecycleState = LifecycleState.Initialized;
throw exception;
}
我捕捉异常,更多的数据添加到它,并重新抛出。 ReSharper的警告我(正确地)一个重新抛出可能是打算和建议其更改为:
throw;
但我想知道:这是否会正确地重新抛出修改异常或未经修改的原始一个?
编辑:作为对“尝试它并看到”的回应:我是C#的新手,来自C++。在C++中,你经常会在像这样的角落案例中发现未定义的行为,而且我感兴趣的是我想要的究竟是它的正式工作方式。
试一试,看看会发生什么? – 2012-02-27 15:31:36
它会重新引用任何引用指向 - 在你的情况下修改“异常”。 – 2012-02-27 15:31:59