Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Try Catch

  1. #1
    Utente di HTML.it L'avatar di biocco
    Registrato dal
    Sep 2003
    Messaggi
    486

    Try Catch

    RAGA DEVO FARE IN MODO CHE SE NON TROVO CFISC MI VISUALIZZA UNA LABEL "UTENTE NON RICONOSCIUTO" E MI FERMA IL PROGRAMMA SENZA FARMI VEDERE LA PAGINA ERRORE DEL SERVER NELL'APPLICAZIONE HO PROVATO MA NON VA NEL FYNALLY HO MESSO IL CODICE CHE DEVE ESEGUIRE NEL CASO TROVA IL CODICE FISCALE MI AIUTATE A FAR CHIAREZZA? CIAO CIAO

    Try
    CFisc = DataReader.GetString(0)
    If CFisc = 0 Then
    Throw New InvalidOperationException
    End If
    Catch ex As Exception
    lblError.Text() = "Utente non riconosciuto"
    Finally
    cmd1.CommandText = "SELECT DSCOGNOME, DSNOME, POSIZIONE FROM XXX WHERE CDFISC = '" & CFisc & "'"
    DataReader = cmd1.ExecuteReader()
    DataReader.Read()
    Cogn_Valu = DataReader.GetString(0)
    Nome_Valu = DataReader.GetString(1)
    Pos_Valu = DataReader.GetString(2)
    cmd2.CommandText = "SELECT DSCOGNOME, DSNOME, CDFISC, POSIZIONE FROM XXX, YYY WHERE POSCOH = '" & Pos_Valu & "' AND POSCOD = POSIZIONE "
    DataReader = cmd2.ExecuteReader()
    DataGrid1.DataSource = DataReader
    DataGrid1.DataBind()
    DataReader.Close()
    End Try

  2. #2
    Utente di HTML.it L'avatar di nicki
    Registrato dal
    Dec 2000
    Messaggi
    139
    try, catch e finally si usano così:

    C#

    codice:
    Try{
     //porzione di codice da eseguire
    }
    Catch(Exception err){
     //codice eseguito se viene generata una eccezione. ee.Message é il messaggio di errore
    }
    Finally{
    //codice eseguito sempre
    }

    Ciao
    Ciao, nic.

  3. #3
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186

    Re: Try Catch

    Originariamente inviato da biocco
    RAGA DEVO FARE IN MODO CHE SE NON TROVO CFISC MI VISUALIZZA UNA LABEL "UTENTE NON RICONOSCIUTO" E MI FERMA IL PROGRAMMA SENZA FARMI ...
    Non si urla in forum...
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    io farei cosi

    Try
    CFisc = DataReader.GetString(0)
    If CFisc = 0 Then
    Throw New InvalidOperationException
    End If
    cmd1.CommandText = "SELECT DSCOGNOME, DSNOME, POSIZIONE FROM XXX WHERE CDFISC = '" & CFisc & "'"
    DataReader = cmd1.ExecuteReader()
    DataReader.Read()
    Cogn_Valu = DataReader.GetString(0)
    Nome_Valu = DataReader.GetString(1)
    Pos_Valu = DataReader.GetString(2)
    cmd2.CommandText = "SELECT DSCOGNOME, DSNOME, CDFISC, POSIZIONE FROM XXX, YYY WHERE POSCOH = '" & Pos_Valu & "' AND POSCOD = POSIZIONE "
    DataReader = cmd2.ExecuteReader()
    DataGrid1.DataSource = DataReader
    DataGrid1.DataBind()
    DataReader.Close()
    Catch ex As Exception
    lblError.Text() = "Utente non riconosciuto"
    End Try

  5. #5
    Utente di HTML.it L'avatar di biocco
    Registrato dal
    Sep 2003
    Messaggi
    486
    IL PROBLEMA CHDE DEVO RISOLVERE CON IL TRY AND CATCH E' QUESTO SE NON TROVA NULLA NELLA TRINGA SOTTO EVIDENZIATA VA IN ERRORE COME POSSO GESTIRLO? GRAZIE DI NUOVO

    Errore server nell'applicazione '/valutazione'.
    --------------------------------------------------------------------------------

    Invalid attempt to read when no data is present.
    Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

    Dettagli eccezione: System.InvalidOperationException: Invalid attempt to read when no data is present.

    Errore nel codice sorgente:


    Riga 65: DataReader = cmd.ExecuteReader()
    Riga 66: DataReader.Read()
    Riga 67: CFisc = DataReader.GetString(0)
    Riga 68: cmd1.CommandText = "SELECT DSCOGNOME, DSNOME, POSIZIONE FROM XXX WHERE CDFISC = '" & CFisc & "'"
    Riga 69: DataReader = cmd1.ExecuteReader()


    File sorgente: C:\Inetpub\wwwroot\valutazione\WebForm2.aspx.vb Riga: 67

    Analisi dello stack:


    [InvalidOperationException: Invalid attempt to read when no data is present.]
    System.Data.OracleClient.OracleDataReader.AssertRe aderHasData()
    System.Data.OracleClient.OracleDataReader.GetStrin g(Int32 i)
    valutazione.WebForm2.Button1_Click(Object sender, EventArgs e) in C:\Inetpub\wwwroot\valutazione\WebForm2.aspx.vb:67
    System.Web.UI.WebControls.Button.OnClick(EventArgs e)
    System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument)
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument)
    System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData)
    System.Web.UI.Page.ProcessRequestMain()




    --------------------------------------------------------------------------------
    Informazioni di versione: Versione di Microsoft .NET Framework:1.1.4322.573; Versione di ASP.NET:1.1.4322.573

  6. #6
    Utente di HTML.it L'avatar di beke82
    Registrato dal
    Mar 2004
    residenza
    Empoli
    Messaggi
    183
    Non si urla nel Forum!
    Se scrivi tutto maiuscolo è come se tu stessi urlando
    e qui nessuno è sordo!
    Un Anello per domarli, un Anello per trovarli,
    un Anello per ghermirli e nel buio incatenarli ( J.R.R. Tolkien )

  7. #7
    Utente di HTML.it L'avatar di beke82
    Registrato dal
    Mar 2004
    residenza
    Empoli
    Messaggi
    183
    Poi sei pregato di inserire i pezzi di codice all'interno dei tag CODE e /CODE racchiusi tra [] che sono attivabili grazie al bottone presente nella pagina di composizione della nuova discussione e questo per maggior chiarezza a parte di noi altri
    Un Anello per domarli, un Anello per trovarli,
    un Anello per ghermirli e nel buio incatenarli ( J.R.R. Tolkien )

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    204
    Originariamente inviato da biocco
    IL PROBLEMA CHDE DEVO RISOLVERE CON IL TRY AND CATCH E' QUESTO SE NON TROVA NULLA NELLA TRINGA SOTTO EVIDENZIATA VA IN ERRORE COME POSSO GESTIRLO? GRAZIE DI NUOVO
    Come ti è stato detto, scrivere in maiuscolo equivale ad urlare e non è gradito né sui forum né nei newsgroups.


    Errore server nell'applicazione '/valutazione'.
    --------------------------------------------------------------------------------

    Invalid attempt to read when no data is present.
    Questo errore significa che stai cercando di leggere dei dati non presenti, probabilmente perché la tua query non ha restituito nessun dato.
    Errore nel codice sorgente:


    Riga 65: DataReader = cmd.ExecuteReader()
    Riga 66: DataReader.Read()
    Riga 67: CFisc = DataReader.GetString(0)
    Riga 68: cmd1.CommandText = "SELECT DSCOGNOME, DSNOME, POSIZIONE FROM XXX WHERE CDFISC = '" & CFisc & "'"
    Riga 69: DataReader = cmd1.ExecuteReader()
    Io modificherei in questo modo:

    codice:
                DataReader = cmd.ExecuteReader()
                if not DataReader.Read() then
    '
    ' codice di controllo perché non è stato trovato nulla
    '
    return
    else
                CFisc = DataReader.GetString(0)
                cmd1.CommandText = "SELECT DSCOGNOME, DSNOME, POSIZIONE FROM XXX WHERE CDFISC = '" & CFisc & "'"
                DataReader = cmd1.ExecuteReader()
                ...
                end if

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.