15 maggio 2006 alle 12:24:13 Salve a tutti, sto sviluppando un sito con aspnuke su aruba utilizzando un db mysql fornito sempre da aruba. Ho provato a gestire le eccezioni del mysql (ma anche quelle generiche) con:
Try .... Catch ex As Exception MessageBox.Show(ex.Message + Environment.NewLine + ex.StackTrace) End Try
MySql = "SELECT ..." On Error Resume Next rs.open MySql, Conn If err.Number <> 0 then [qui gestisci l'errore] End If
<%@LANGUAGE="VB Script" CODEPAGE="1252"%> <%
' Abilita il buffer di esecuzione Response.Buffer = true
' Abilita la gestione degli errori On Error Resume Next
' Punto di controllo degli errori if Err.Number <> 0 then
' Svuota il buffer di elaborazione Response.Clear()
' Mostra un messaggio di errore Response.Write("Si è verificato un errore in fase di esecuzione.<br>") Response.Write("Tornare alla pagina precedente e riprovare.")
else
' Mostra il contenuto della pagina, ' il risultato dell'elaborazione o quanto desiderato.
end if
%> <_/body> <_/html>
Nessuno sembra funzionare, il server risponde con una pagina di errore tipo: pagina non trovata altrimenti funziona tutto.
Come faccio a gestire le eccezioni? Può dipendere da aruba?
15 maggio 2006 alle 13:18:42 Aspnuke gestisce gia' la maggior parte delle eccezioni, utilizzando la "on error resume next", quindi non hai bisogno di gestirle tu. Comunque dovresti studiare bene il linguaggio VB Script, prima di provare a scrivere il codice. Ciao
--------------- development@aspnuke.it
Mordred Amatore
29 Discussioni
15 maggio 2006 alle 13:24:06 Io ho bisogno di gestire le eccezioni in base al tipo di errore generato. Con la "on error resume next" (che da un paio d'ore non funziona più, mentre prima funzionava) mi stampa l'errore a video mentre io devo poter gestire la cosa in modo da visualizzare un mio messaggio all'utente o in alcuni casi far eseguire qualcosa di diverso al programma.
15 maggio 2006 alle 13:40:24 Modificato il 15 maggio 2006 alle 13:42:33Appunto. Per poter scrivere codice abbastanza sofisticato come quello per la gestione delle eccezioni, il codice bisogna saperlo scrivere, non cercarlo in giro. Infatti non ti sei accorto che nel codice da te trovato viene usata l'istruzione "Try", che in VB Script NON ESISTE. Ti copio un esempio dal codice di Aspnuke:
On Error Resume Next oCn.Open sConnString If Err.number <> 0 Then Response.Write "<br>" & GetTranslation("LANG_SQL_ERROR") If IsAuthorizedBin(ROLE_ADMINISTRATOR) Then Response.Write " " & Err.number & ": " & Err.Description & "<br>" Response.Write "Connection String : " & sConnString & "<br>" End If Err.Clear End If On Error Goto 0
Come vedi, in questo esempio, l'istruzione "on error resume next" ci consente di intercettare l'errore e di scrivere quello che vogliamo a video (si potevano scrivere cose diverse in base al valore di Err.number). Ciao
Mordred Amatore
29 Discussioni
15 maggio 2006 alle 15:02:00 Ti ringrazio per la tua pazienza, purtroppo non sono molto pratico di VB. Comunque avevo anche provato con un codice simile a quello postato da te ed ho notato che quando ho un errore in mysql, il codice Err.number è uguale a 0. Come posso fare per gestire le eccezioni (sql e non)?