Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C#] Gestione errori

  1. #1

    [C#] Gestione errori

    Ciao a tutti!! Sto sviluppando un'applicazione in C# con .NET 3.5. Ora quando sono in debug accade un fatto curioso. Quando si verifica un'eccezione non gestita con un blocco try-catch, l'applicazione non mi mostra nessun messaggio di errore. C'è un modo per far apparire un messaggio di errore come per esempio avviene nelle applicazioni ASP.NET? Che se un'eccezione non è gestita il server mi rimanda la pagina standard di errore di ASP.NET.
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  2. #2
    Scusami, cosa vuol dire che se c'è un'eccezione non gestita non ti mostra nessun messaggio di errore? Non ti mostra l'eventuale messagebox che hai messo nel Catch ma ti viene messo l'IDE di Visual Studio in primo piano e ti viene selezionata in giallo la riga che ha generato l'eccezione non gestita, è così?

  3. #3
    Originariamente inviato da mardok30
    Scusami, cosa vuol dire che se c'è un'eccezione non gestita non ti mostra nessun messaggio di errore? Non ti mostra l'eventuale messagebox che hai messo nel Catch ma ti viene messo l'IDE di Visual Studio in primo piano e ti viene selezionata in giallo la riga che ha generato l'eccezione non gestita, è così?
    L'IDE di visual studio mi viene messo in primo piano e l'applicazione si blocca sulla riga dove si è verificato l'errore. Ma con l'applicazione in release mi dovrebbe far vedere la finestra di errore standard del framework dove dice che si è verificata un'eccezione non gestita dall'utente, cosa che non accade.
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  4. #4
    Mi pare che quel tipo di finestra che dici tu appare solo con alcuni tipi di eccezioni, allo stato attuale dovrebbe apparire solo quella generica di Windows che dice: il programma xxx ha smesso di funzionare..."
    Comunque, all'inizio pensavo che non ti veniva mostrato nessun messaggio dell'eccezione in fase di debug, neanche quello dell'IDE.
    Se vuoi gestire tutte le eccezioni, anche quelle non gestite con i vari Try Catch, io faccio così:
    1) Ti crei un modulo 'StartupModule', vai nelle proprietà del progetto e lo imposti come 'oggetto di avvio', per poterlo fare devi togliere la spunta a 'Attiva framework applicazione'
    codice:
    Module StartupModule
       Sub Main(ByVal args() As String)
      Application.EnableVisualStyles()
            AddHandler Application.ThreadException, AddressOf GestoreEccezioni
    End Sub
    
       Public Sub GestoreEccezioni(ByVal sender As Object, ByVal e As Threading.ThreadExceptionEventArgs)
            Try
    ...
    'Invia segnalazione di errore
    ...
        Catch ex As Exception
                MessageBox.Show("Si è verificato un errore." & vbNewLine & Err.Description, "Errore: " & Err.Number, MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
    End Module
    In modo che tutte le eccezioni non gestite verranno gestite nella funzione GestoreEccezioni
    Ovviamente il codice è in VB.NET, non dovresti avere difficoltà nella traduzione. Se hai qualche problema...

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.