Blocco try Catch (1)

lunedì 27 giugno 2005 - 18.54

Babi Profilo | Junior Member

Ciao a tutto il forum
Vi pongo una prima questione sul blocco try catch.

Se ho un codice del genere:

try

call sub1
call sub2
call sub3

Catch exc As Exception
MsgBox(exc.Message)
End Try

La domanda è: se si verifica un eccezione all'interno delle sub 1,2 e 3
l'errore viene agganciato da questa unica catch?

La stessa cosa avviene anche se le sub1,2,3 richiamano altre sub?
In sostanza, per intercettare un errore in una parte di codice che mi interessa mi basta
un solo blocco try catch?
Spero di essermi spiegata bene...
Grazie a tutti.


19018 Profilo | Expert

Se si verifica una eccezione in una sub devi distinguere due casi :
1) la sub ha un suo try catch interno per cui l'errore viene gestito dalla sub stessa senza far risalire l'eccezione
2)la sub non ha un suo try catch interno allora l'eccezione risale lo stack delle chiamate finchè non trova un try catch in grado di gestire l'eccezione stessa.
Ciao!

Babi Profilo | Junior Member

Grazie, quindi nel mio caso con una sola try-catch riesco comunque ad intercettare gli errori che avvengono in tutte le sub.corretto?
Siccome ogni sub scrive su una tabella diversa, a me in effetti non interessa
il punto dove viene scatenato l'errore, ma mi interessa solo intercettarlo.

Ditemi se il mio discorso ha un senso..

ciao



19018 Profilo | Expert

Certo che riesci con un solo try catch a intercettare una eccezione che si verifica in una sub ma diciamo che non è una pratica di programmazione fare in questo modo...sarebbe più pulito gestire le varie sub singolarmente dall'interno o come diceva anche Coach potresti rilanciare una eccezione precisa tramite throw!Cmq fai un pò te! :) ciao



[Mask]
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5