如果在下面的代碼的try塊中存在OutOfMemoryException,是否有可能讓is
檢查自己拋出另一個OutOfMemoryException?換句話說,is
檢查分配內存?OutOfMemoryException異常處理程序內是否可以使用is運算符會導致另一個OutOfMemoryException?
public void Main()
{
try
{
Execute();
}
catch (Exception e)
{
if (e is OutOfMemoryException || e is ThreadAbortException)
{
throw;
}
else
{
Log(e);
throw;
}
}
}
還挺瑣碎只是試試這個,是不是?使用[這樣的代碼](http://referencesource.microsoft.com/#mscorlib/system/runtime/versioning/multitargetinghelpers.cs#65)。 –
如果我嘗試它,它不會拋出異常,但我不確定這是否意味着它與下面的John Saunders解決方案相同。 –
我從.NET框架(如鏈接的框架)中的用法中提取了問題中的代碼。在我看來,如果需要爲'is'分配內存,可能會出現另一個OOM異常,但這是使用.NET庫代碼的,據推測這很可靠。我對CLR內存分配知之甚少,所以我想知道這與John Saunders的代碼中的代碼是否相同。因此,這個問題。 –