我正在處理App類中有一個UnhandledException處理程序的Silverlight應用程序,該處理程序顯示包含異常消息的消息框。對於自定義例外,這通常很好。但是,對於內置異常(例如NullReferenceException)而言,這並不是很好,因爲用戶沒有安裝開發人員運行時,因此得到一個相當難看的「調試資源字符串不可用」消息。如何檢測並打包「調試資源字符串不可用」而不安裝開發人員運行時?
我的第一個想法(我很快被解僱了)是檢查異常消息「調試資源字符串」。我想象一下,如果有人在運行應用程序,比如說法語,他們會得到類似「leschaînesde ressources dedébogage」的東西,所以這是行不通的。
也許有一種方法讓Silverlight應用程序檢測它是否在最終用戶運行時與開發人員運行時運行?我查看了應用程序和環境和部署類,並沒有發現任何東西。
我想這不會是一個問題,如果應用程序總是拋出自定義異常任何時候需要顯示給用戶的某種消息。然後我可以用一個友好的通用消息輕鬆隱藏非定製的。這是最好的/唯一的選擇嗎?
你有沒有找到前進的道路呢?這也讓我很沮喪。 – Trinition
不幸的是沒有前進的道路,除了我描述的最後一個想法(拋出自定義異常)。但是,也許錯誤消息告訴用戶某些特定的內容(例如「另一個用戶已經更新了這個數據,你試圖保存」),不管怎樣,都不應該將它傳遞給UnhandledException處理程序。相反,這些異常應該被捕獲到更高的地方,UnhandledException處理程序應該被用作任何意想不到的東西,並且應該顯示一個通用的錯誤消息。對此有何想法? – Andrew