Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Gestione degli errori in VB.net

Come intercettare visualizzare gli errori compiuti in fase di programmazione
Come intercettare visualizzare gli errori compiuti in fase di programmazione
Link copiato negli appunti

«Maledetto errore, mi fa impazzire e non capisco dove si nasconde.» Ve la ricordate questa frase? Quante volte l'avrete detta? Ora, grazie a quest'articolo vi illustro la soluzione offerta da Asp.net per capire la causa scatenante dell'errore. Il classico esempio di errore che si propone sin dai corsi di programmazione base la divisione per zero. Ora, vi illustro la parte di codice che gestisce l'errore illustrandone il funzionamento.

<%@ Page Language="VB" %>
<script runat="server">
 sub page_load(obj as object, e as eventargs)

 'Dichiarazione delle Variabili

 dim intNum1 as integer
 dim intNum2 as integer
 dim intRisultato as integer

 'Prima assegnazione

 intNum1 = 15
 intNum2 = 0

 'effettuo la divisione INTERA generando errore

 Try
  intRisultato = intNum1 / intNum2
  lblErroreTesto.text = intRisultato
 Catch strEccezione As Exception

  'è stato rilevato un errore

  lblErroreTesto.text = "Si è verificato il seguente ERRORE:<br>"& strEccezione.ToString
 End Try

 'Seconda assegnazione

 intNum1 = 15
 intNum2 = 7

 'effettuo la divisione INTERA NON generando errore

 Try
  intRisultato = intNum1 / intNum2
  lblPositivaTesto.text = intRisultato
 Catch strEccezione As Exception

  'è stato rilevato un errore

  lblPositivaTesto.text = "Si è verificato il seguente ERRORE:<br>"& strEccezione.ToString
 End Try
End Sub
</script>
<html>
<head>
<title>Pagina Gestione Errori</title>
</head>
<body MS_POSITIONING="GridLayout">
<form id="frmErrore" method="post" runat="server">
<asp:Label id="lblErrore" style="Z-INDEX: 101; LEFT: 23px; POSITION: absolute; TOP: 12px" runat="server" Font-size="Smaller" Font-Bold="True" Font-Names="Tahoma" BackColor="Black" ForeColor="White">Etichetta Di Errore</asp:Label>

<asp:Label id="lblErroreTesto" style="Z-INDEX: 102; LEFT: 19px; POSITION: absolute; TOP: 32px" runat="server" BackColor="#FFFFC0">Label</asp:Label>

<asp:Label id="lblPositiva" style="Z-INDEX: 103; LEFT: 27px; POSITION: absolute; TOP: 304px" runat="server" Font-Size="Smaller" Font-Bold="True" Font-Names="Tahoma" BackColor="Black" ForeColor="White">Etichetta Senza Errore</asp:Label>

<asp:Label id="lblPositivaTesto" style="Z-INDEX: 104; LEFT: 28px; POSITION: absolute; TOP: 328px" runat="server" BackColor="#FFFFC0">Label</asp:Label>
</form>
</body>
</html>

Come potete osservare, nella parte di scripting lato server si nota la presenza del costrutto:

Try
  'Codice asp.net

Catch strEccezione As Exception
  'Codice asp.net

End Try

Ora illustro il suo funzionamento. Tra le parole chiave Try e catch, bisogna immettere il codice incriminato per la generazione dell'errore. Tra le parole chiave Catch e End Try, va specificato il comportamento da eseguire in caso di errore nel codice presente all'interno delle parole chiave Try e catch. Come osservate, alla destra della parola chiave Catch vi è un "passaggio" di un valore. In questo caso viene passato sotto forma di stringa (strEccezione) l'eccezione generata in fase di esecuzione del codice incriminato. Nel caso specifico, verrà mostrata la seguente dicitura nella label dedicata a contenere il messaggio d'errore:

Si è verificato il seguente ERRORE:
System.OverflowException: Overflow di un'operazione aritmetica.
at ASP.errore_aspx.page_load(Object obj, EventArgs e)
in c:inetpubwwwrootbookSqlerrore.aspx:line 16

Ti consigliamo anche