Wie kann ich eine StackOverflowException verhindern und / oder behandeln?

Ich würde gerne entweder zu verhindern oder zu behandeln eine StackOverflowException, dass ich immer von einem Aufruf der XslCompiledTransform.Transform-Methode innerhalb einer Xsl-Editor, Schreibe ich. Das problem scheint zu sein, dass die Benutzer schreiben Sie ein Xsl-Skript, das ist unendlich rekursiv, und es weht bis auf den Aufruf der Transform-Methode. (Das heißt, das problem ist nicht nur die typische programmatische Fehler, die in der Regel die Ursache für solche eine Ausnahme.)

Gibt es eine Möglichkeit zu erkennen und/oder zu begrenzen, wie viele rekursionen zugelassen werden? Oder irgendwelche anderen Ideen, um diesen code aus nur Sprengung auf mich?

Kommentar zu dem Problem - Öffnen
@William Jockusch Ein Ansatz, den Sie nehmen könnten, wäre zu schreiben/ändern einen profiler zum überwachen der Größe des stack, wenn es eine Mitteilung über einen Anruf. Die ProfilerCallback::_LogCallTrace der CLRProfiler möglicherweise ein guter Ort, um zu starten, aber es scheint nicht so ein leichtes Unterfangen. Link zum profiler Quellcode-download über David Browman ' s blog: blogs.msdn.com/b/davbr/archive/2011/02/01/... Kommentarautor: forsvarir
Die bounty ist problematisch, um das Mindeste zu sagen. Siehe meta.stackoverflow.com/questions/296486/... für eine Diskussion. Kommentarautor: tripleee

InformationsquelleAutor der Frage JohnnyM | 2008-10-15

Schreibe einen Kommentar