Silverlight では、無限再帰によってブラウザー全体がハングする場合があります。
public void SomeMethod()
{
RecursingMethod1();
}
public void RecursingMethod1()
{
...
RecursingMethod2();
...
}
public void RecursingMethod2()
{
...
RecursingMethod1();
...
}
呼び出しSomeMethod()
は無限再帰ループにつながります。.net フレームワークでは、System.StackOverflowException
. Silverlight では、ブラウザーがハングするだけです (たとえば、Silverlight プラグインを含むタブを閉じることができない、別のタブに切り替えることができない、残された唯一のオプションはブラウザーを強制終了することです)。この状況では、Google Chrome のサンドボックスは役に立ちません。
典型的な状況は、イベントがイベント ハンドラーから呼び出される場合です。
Silverlight をスローさせる方法はありますSystem.StackOverflowException
か?
編集 1
単純な再帰の場合、プラグイン/ブラウザがクラッシュします。
イベントがイベント ハンドラから呼び出されると、ブラウザがハングします。この場合、実際の再帰はないように思われます。プラグイン/ブラウザのリソースをむさぼり食う無限ループだけです。例外をスローする方法はありません。