Domanda

Le domande dicono tutto, prendi questo codice di esempio:

<ul id="css-id">
    <li>
    <something:CustomControl ID="SomeThingElse" runat="server" />
    <something:OtherCustomControl runat="server" />
    </li>
</ul>

Ora, se un errore viene generato da qualche parte all'interno di questi controller (che si trovano in una pagina master), elimineranno l'intero sito, come si potrebbero rilevare queste eccezioni?

È stato utile?

Soluzione

Puoi prendere tutte le eccezioni non gestite altrove nella pagina / classe Global.asax. Guarda:

protected void Application_Error(Object sender, EventArgs e)

metodo.

Altri suggerimenti

Purtroppo un'eccezione non gestita farà sempre errore nel tuo sito. Tuttavia, puoi impedirlo in alcuni modi.

  • Utilizza la sezione nel tuo web.config per mostrare un messaggio intuitivo
  • In Global.asax - o in un gestore personalizzato - rileva l'eccezione non gestita e reagisci di conseguenza - come questo

migliore soluzione

  • Assicurati che i controlli non generino eccezioni non gestite!

Aggiungi un global.asax e implementa il gestore Application_Error. Utilizzare la funzione Server.GetLastError () per ottenere un handle sull'eccezione generata.

Utilizzo del metodo Global.asax Application_Error, come descritto in Come creare pagine di segnalazione errori personalizzate in ASP. NET utilizzando Visual C #. NET .

Un approccio alternativo sarebbe quello di utilizzare un modulo HTTP ; questo ti dà un po 'più di flessibilità (puoi gestire errori da più applicazioni, ad esempio).

Vuoi catturare l'eccezione e gestirla?

O vuoi impedire lo schermo giallo della morte? Se stai cercando di prevenire la schermata gialla della morte, guarda come gestire l'evento Error su HttpApplication (in altre parole, nel tuo Global.asax).

Vedi la seguente pagina MSDN per maggiori dettagli: http://msdn.microsoft.com/en- us / library / system.web.httpapplication.error.aspx

In particolare questo paragrafo:

  

L'eccezione che genera l'evento Error è accessibile mediante una chiamata al metodo GetLastError. Se l'applicazione genera un output di errore personalizzato, elimina il messaggio di errore predefinito generato da ASP.NET da una chiamata al metodo ClearError.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top