[VB.Net] Try-Catch-Block in Hintergrundthread ungültig?

07/06/2013 21:22 maxasoft#1
Hey,

Ich habe folgenes Problem:

PHP Code:

    
Private Sub checker()
        
Dim doc As String ""
        
Try
            
Invoke(Sub() doc WebBrowser1.DocumentText)
        Catch 
ex As System.StackOverflowException
        Msgbox
(ex.message)
        
End Try
End Sub 
"Eine nicht behandelte Ausnahme des Typs "System.StackOverflowException" ist in System.Windows.Forms.dll aufgetreten."

Tritt in der Zeile Invoke(Sub() doc = WebBrowser1.DocumentText) auf. Dabei ist die ja in einem Try-Catch-Block eingebettet.

Den Thread starte ich so:

PHP Code:
With New Thread(AddressOf checker)
            .
IsBackground True
            
.Start()
        
End With 
Wie kann ich den Try-Catch-Block "gültig" machen?

Danke im Vorraus.

MfG, maxasoft
07/08/2013 13:17 Frosttall#2
Eine StackOverflowException kann niemals gehandelt werden. Diese Exception wird geworfen nachdem das Programm bereits die Termination gestartet hat.

Mehr Infos sind hier: [Only registered and activated users can see links. Click Here To Register...]
07/08/2013 17:11 maxasoft#3
aber gibt es irgendwas, das verhindern kann, dass das programm den error anzeigt?
und wie könnte man das verhindern?
07/08/2013 17:21 tolio#4
stackoverflow bedeutet idR das dein programm kaputt ist, wie Frosttall das schon angedeutet hat, wenn diese auftritt dann ist es schon zu spät

du musst die programmlogik so ändern das folgende bedingung nicht auftritt:

Quote:
StackOverflowException wird bei Anwendungsfehlern wegen Stapelüberlaufs ausgelöst, meist im Falle einer sehr tief geschachtelten oder unbegrenzten Rekursion. Die Localloc-MSIL-Anweisung (Microsoft Intermediate Language) löst eine StackOverflowException aus.
du hast offensichtlich den geposteten link dir nicht angeschaut weil da stehts drin