esatto...in altre parole, la gestione delle eccezioni deve essere "rasoterra"...a meno che la libreria in uso non è progettata apposta, nei suoi metodi, per restituire, che so, -1 dopo aver intercettato una eccezione. in quel caso si puo' gestire l'eccezione anche a livello piu' esterno...
per es, per il login di un utente:
e nel metodo "login" della classe "utente.vb"codice:Namespace CustomExceptions Public Class UtenteNonTrovatoException Inherits ApplicationException Sub New(Optional ByVal message As String = "Utente non trovato in archivio", Optional ByVal inner As Exception = Nothing) MyBase.New(message, inner) End Sub End Class End Namespace
e nella pagina aspx che istanzia la classe utente:codice:. . . Try conn.Open() cmdLogin.ExecuteNonQuery() If cmdLogin.Parameters("@id").Value <> -1 Then valoreritorno = 0 Else Throw New CustomExceptions.UtenteNonTrovatoException End If Catch ex As CustomExceptions.UtenteNonTrovatoException Trace.Warn("WARNING: " & ex.Message) valoreritorno = -1 Finally conn.Close() cmdLogin.Dispose() Return valoreritorno End Try
codice:if utente.login = -1 then response.write("errore nel login")

Rispondi quotando