私は、例外メッセージを含むメッセージボックスを表示するAppクラスにUnhandledExceptionハンドラを持つSilverlightアプリケーションを作成しています。これは、カスタム例外の場合はしばしば問題ありません。しかし、組み込みの例外(NullReferenceExceptionなど)では、開発者のランタイムがインストールされていないため、「デバッグするリソース文字列が利用できません」というメッセージが表示されるため、あまり適していません。開発者ランタイムをインストールしないで「デバッグリソース文字列が見つかりません」を検出してラップする方法はありますか?
私が最初に考えたのは、「リソース文字列をデバッグする」という例外メッセージをチェックすることでした。私は誰かがフランス語でアプリを実行していると想像します。「leschaînesde ressources dedébogage」のようなものを手に入れることができます。
おそらく、Silverlightアプリがエンドユーザランタイムとデベロッパーランタイムのどちらで実行されているかを検出する方法がありますか?私はアプリケーションと環境とデプロイのクラスを見てきましたが、何も見つかりませんでした。
ユーザーに何らかのメッセージを表示する必要があるときに、アプリケーションが常にカスタム例外を投げた場合、これは問題ではないと思います。それで、私は簡単に友好的な一般的なメッセージで非カスタムのものを隠すことができました。それは最高の/唯一のオプションですか?
まだ経路が見つかっていませんか?これも私を噛んでいる。 – Trinition
残念ながら私は(私は例外をスローする)最後のアイデアを除いて、まだ前方にパスがありません。ただし、ユーザーに特定のもの(たとえば、「別のユーザーが保存しようとしているこのデータを既に更新しました」など)を通知するエラーメッセージは、とにかくUnhandledExceptionハンドラに送信してはなりません。代わりに、それらの例外はどこかで上にキャッチされる必要があり、UnhandledExceptionハンドラは予期しない何かのためにキャッチオールとして使用され、汎用エラーメッセージを表示する必要があります。それについての考えは? – Andrew