Il mio sito asp.net consente agli utenti di selezionare il tema desiderato da un elenco generato dalla cartella app_themes. Di volta in volta, i temi vengono rinominati o rimossi. Qualsiasi utente che ha selezionato un nome tema eliminata (è memorizzato in un cookie) otterrà l'eccezione:Impossibile trovare il tema "XXX" nell'applicazione o nelle directory di temi globali
Theme 'XXX' cannot be found in the application or global theme directories
Stack Trace:
[HttpException (0x80004005): Theme 'test' cannot be found in the application or global theme directories.]
System.Web.Compilation.ThemeDirectoryCompiler.GetThemeBuildResultType(String themeName) +920
System.Web.Compilation.ThemeDirectoryCompiler.GetThemeBuildResultType(HttpContext context, String themeName) +73
System.Web.UI.Page.InitializeThemes() +8699455
System.Web.UI.Page.PerformPreInit() +38
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +282
Dove è il posto migliore per intercettare e gestire questa eccezione?
Posso vedere che questo funzionerebbe ma sembra piuttosto un sovraccarico per ogni richiesta di pagina. Presumibilmente Directory.Exists richiede un tempo relativamente lungo. Dovrebbe essere molto raro che ciò accada, e questo è il motivo per cui ho voluto catturare l'Eccezione, ma non sono sicuro di quale fosse il tipo di eccezione o dove inserire il blocco di prova. – simon831
Sono d'accordo: ecco perché ho notato che memorizziamo il risultato nel viewstate, che modifica la funzione sopra. –