13 messaggi dal 03 dicembre 2013
Buongiorno a tutti,
sono un nuovo utente, scusate se faccio qualche errore nella pubblicazione, vi chiedo se qualcuno mi può aiutare nella gestione delle eccezioni. Vorrei che la mia applicazione intercettasse con Try...Catch l'eccezione da me scritta in una apposita classe. Ho trovato questo codice su internet.

Public Class EmployeeListNotFoundException
Inherits Exception

Public Sub New()
End Sub

Public Sub New(message As String)
MyBase.New(message)
End Sub

Public Sub New(message As String, inner As Exception)
MyBase.New(message, inner)
End Sub
End Class

Adesso provo a fare una

'Employee ha valore non presente nella lista'

try
lstEmployee.item(Employee)
catch ex as EmployeeListNotFoundException
msgbox("Error!!!")
end try

ma questo non invoca l'eccezione bloccando l'applicazione.

Grazie per l'aiuto.
Marcello
Non dovresti lanciare un throw EmployeeListNotFoundException per entrare nel catch?

Ormai programmano tutti... ma la professionalità appartiene a pochi
13 messaggi dal 03 dicembre 2013
Grazie per la risposta.

Quindi devo creare una

If errore then throw classe eccezione

E' corretto cosi?

Grazie
Marcello
13 messaggi dal 03 dicembre 2013
Ciao Manuel0081,
intanto grazie per la tua disponibilità.

Ho modificato il codice in

Public Class EmployeeListNotFoundException
Inherits Exception

Public Sub New()
End Sub

Public Sub New(message As String)
MyBase.New(message)
End Sub

Public Sub New(message As String, inner As Exception)
MyBase.New(message, inner)
End Sub
End Class

Adesso provo a fare una

'Employee ha valore non presente nella lista'

try
if Employee = "" then throw new EmployeeListNotFoundException
lstEmployee.item(Employee)
catch ex as EmployeeListNotFoundException
msgbox("Error!!!")
end try

ma adesso non intercetta gli errori di classe base anche se io ho ereditato nella mia classe quella base.

Come si fa a gestire e creare una classe personalizzata di eccezioni?

Grazie per la collaborazione
Marcello
Se vuoi catchare anche le altre devi effettuare un catch per ogni tipo di eccezione dalla più specifica (la nuova creata) alla più generica.

Ormai programmano tutti... ma la professionalità appartiene a pochi
13 messaggi dal 03 dicembre 2013
Scusa ancora,
ma catchando dalla più nuova

Try


Catch personalException

Catch outoffException

End try

posso fare a meno di utilizzare Throw con If.

Grazie per la collaborazione
Marcello
specifica e generica si riferiscono al fatto di appartenere a una gerarchia. Nel tuo caso, se definisci nuovi tipi di eccezioni, devi effettuare sempre il throw. Il Framework non potrebbe rilanciare una eccezione implementata da te. (Forse non ho capito cosa intendi)

Ormai programmano tutti... ma la professionalità appartiene a pochi
13 messaggi dal 03 dicembre 2013
Ciao,
io intendo raggruppare in una classe di eccezioni sia quelle ereditate

Class MieEccezioni
inherits applicationExcetion

e aggiungerne altre a questa

public Sub miaEccezione

End Sub
End Class

In modo da poterle intercettare nel codice per poi trattarle

try

catch ex as MieEccezioni

End try

Grazie e scusa se magari chiedo cose impossibili.
Marcello

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.