2016-05-12 11 views
0

Ich versuche, etwas entlang der Linien der folgenden Funktionen ausführen:Wie überprüfe ich, ob Server.GetLastError() = System.Web.UI.ViewStateException?

If Server.GetLastError() = System.Web.UI.ViewStateException Then 
    ' Do something here 
End If 

Aber das funktioniert nicht und gibt mir diese: ‚ViewStateException‘ ist eine Art Klasse und nicht in einem Ausdruck verwendet werden kann.

Also habe ich versucht, Variationen dieses:

If (Server.GetLastError.GetType = TypeOf (System.Web.UI.ViewStateException)) Then 

Aber das ist auch nicht arbeiten.

Was fehlt mir?

+0

was funktioniert im zweiten Fall nicht? try 'if (TypeOf Server.GetLastError ist System.Web.UI.ViewStateException)' –

+0

Das Gleiche, aber mit der Hinzufügung von "is operator akzeptiert keine Operanden vom Typ boolean" und wenn ich es in = ändere, dann bekomme ich nur das gleiche Original Error. – Westicle

Antwort

1

Sie müssen Ihre Syntax aktualisieren. Verwenden Sie die TypeOf Operator (Visual Basic)

Dim lastError As Exception = Server.GetLastError().InnerException 
If TypeOf lastError Is System.Web.UI.ViewStateException Then 
    ' Do something here 
End If 

Oder Sie können versuchen, den Typ, den Sie werfen wollen und prüfen, ob es nicht nichts.

Dim lastError = TryCast(Server.GetLastError().InnerException, System.Web.UI.ViewStateException) 
If lastError IsNot Nothing Then 
    ' Do something here 
End If 
+0

Das gibt mir immer noch '' ViewStateException 'ist eine Typklasse und kann nicht in einem Ausdruck verwendet werden. " – Westicle

+0

Entschuldigung @ Nkosi der zweite Teil funktioniert. Jetzt bekomme ich nur HttpUnhandledException statt ViewStateException, also muss man herausfinden, wie man das überprüft. – Westicle

+0

Es wurde mir klar, dass ich den 'TypeOf'-Operator im ersten Teil meiner Antwort weggelassen hatte. Es tut uns leid. – Nkosi