Exception handling for Windows Runtime apps in C# or Visual Basicによると、MSは推奨しています:UWPアプリのクラッシュ時にエラーの詳細を表示しない(!)ことをお勧めします。
を「あなたのアプリケーションがクラッシュした場合、アプリの寿命の状態はあなたがそうすることができます場合でも、クラッシュの詳細を記述したユーザへの情報を表示しようとしません。」
[この勧告は、WinRTのアプリケーション用で、UWPのためではないの推薦があるように思われます。私は、我々は彼らに同じを扱うことになっていると仮定します。]
誰かがこの背後にある理論的根拠を説明できますか?
MS UWPアプリケーションはこの規則に従います。私はメール、翻訳者、電卓、ストアアプリを持っています...クラッシュや再起動時のフィードバックなしで中止します。
私は個人的にはアプリが簡単に任意のヒントなしで消えたときにそれが迷惑を見つけます。 次の開始時にエラー情報を表示する「小さなワトソン」の解決策は、私にとっては奇妙な感じです。どちらの行動は、共通のユーザーの期待
に適合していないDOE App_UnhandledExceptionでの何が問題になっている。そして、
- エラーの詳細を表示MessageDialog、
- とクラッシュするアプリを強制的に例外を再スロー?
私が一度も経験したことのないMessageDialogを表示できないような悪い状態のアプリは、まったく試してみる必要はありません。
私はApp_UnhandledExceptionにアプリが未定義/脆弱な状態になっている可能性があり、もう1つは、ここで実行されるコードを最小限に抑える必要があることを理解しています。しかし、ここでは例外をトレースし、HockeyApp経由で追跡しています。なぜユーザーに通知しないのですか?
クラッシュエラー通知は、ユーザーのために有用である場合はアプリとターゲットオーディエンスに依存します。私は長年の経験から、間違いのある技術情報を含むエラー通知が間違いなく有用であることを知っているエンタープライズアプリケーションについては、ユーザーはしばしばサポートに連絡することなく、問題を回避して欠陥のあるアプリケーションを扱うことができます(サポートは自動的に問題を認識していました)。消費者向けアプリケーションの価値は議論の余地があります。私は、データを入力した直後にArg_OverflowExceptionを見たり、http_client例外を見たときにケーブルモデムのプラグを抜いたことを覚えているときに、多くのユーザーが除数として0を入力するのをやめてしまうと思います。 UWPアプリがクラッシュした時に予期しない例外についてユーザーに通知するか、例外の詳細を示すに対して
エラーメッセージは、ユーザーにとっては役に立ちません。 * "このアプリケーションはクラッシュしたため、..." *ユーザーは気にしません。彼らはメッセージに基づいて何らかの行動を取るつもりはない。彼らは、メッセージがあったかどうかに関係なく、アプリケーションを再び起動します。診断用の情報が必要な場合は、アプリにミニダンプを作成させてください。 – IInspectable
これは有効な側面です。私はこれをコメントして私の質問を更新しました。 –
アップデートでは、役に立つエラーメッセージが表示されることを前提としています**。あなたの例(除数として0を入力したときの 'Arg_OverflowException')は、しばしばユーザが頭を振って、続いて*" Meh、M $ sucks "*につながります。それが「ゼロによる除算」の線に沿っていれば、それは別の話になります。しかし、それは例外レコードから**有用な**エラーメッセージを推論するのがどれほど難しいかを示しています。あなたのアプリを参考にしたい場合は、処理されていない例外ハンドラには入れないでください。その代わりに、http_client例外を処理し、ユーザーにケーブルモデムをオンにするように知らせてください。 – IInspectable