trang web asp.net của tôi cho phép người dùng chọn các chủ đề mà họ muốn từ một danh sách được tạo ra từ thư mục App_Themes. Đôi khi, các chủ đề được đổi tên hoặc xóa. Bất kỳ người dùng đã chọn một tên chủ đề bị xóa (nó được lưu trữ trong một cookie) sẽ nhận được ngoại lệ:Theme 'XXX' không thể được tìm thấy trong thư mục ứng dụng hoặc chủ đề toàn cầu
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
đâu là nơi tốt nhất để bẫy và xử lý các ngoại lệ này?
Tôi có thể thấy rằng điều này sẽ làm việc nhưng nó có vẻ khá một chi phí cho mỗi yêu cầu trang. Có lẽ Directory.Exists mất một thời gian tương đối dài. Nó phải là rất hiếm hoi mà điều này xảy ra, và thats lý do tại sao tôi muốn nắm bắt những ngoại lệ, tôi chỉ wan't chắc chắn những gì loại ngoại lệ là hoặc nơi để đặt các catch. – simon831
Tôi đồng ý - đó là lý do tại sao tôi lưu ý rằng chúng tôi lưu trữ kết quả trong khung nhìn, điều chỉnh chức năng ở trên. –