6

本番システムの UI に StackTrace をエンドユーザーに提示してもよい (または推奨される) 特定の状況はどれですか

StackTraces をエンド ユーザーに表示する必要があるかどうかを尋ねる Web サイトや SO 記事が多数あります。当然のことながら、答えは圧倒的に「いいえ」です。.

例えば:

しかし、私は最近別の開発者と会話し、UI を介してスタックトレースをユーザーに渡してはならない理由を考えるのにかなりの時間を費やしました。その議論に戻って、私の基本的な (絶対) テナントの 1 つを再訪する必要がありました

説得力のある理由は一つも見つかりませんでした。ただし、有効なユースケースがあると確信しており、それを理解するか、絶対テナント をしっかりと保持し続けることを快適に感じたい.

4

4 に答える 4

10

そうではありません。ユーザーにとって役に立たないだけです。

ユーザーはメッセージを受け取ります。開発者は、ログ、電子メール、キュー、ローカル/内部で実行されているときにレンダリングされた HTML などでスタック トレースを取得します。

于 2012-06-19T18:35:39.843 に答える
2

スタック トレースは通常、クラッシュの原因となったバグを特定し、利用可能な回避策がある可能性があるため、アプリケーションがクラッシュしたときにユーザーがスタック トレースを利用できるようにする必要があります。回避策は明らかに、回避策の対象となるバグが原因でクラッシュが発生した場合にのみ機能します。それ以外の場合、回避策を試みても時間の無駄になります。

クラッシュは、ユーザーが更新する必要がある何か (グラフィックス ドライバーなど) のバグによって引き起こされることもあります。この場合、スタック トレースには通常、atiumdag.dll などのグラフィックス ドライバーの名前が含まれています。

想像してみましょう:

スタック トレースなし:

顧客: 「プログラムが動作を停止しました」というメッセージ ボックスが表示されます。

サポート: 試してみてください。

顧客: いいえ、役に立ちません。

サポート: 試してみてください。

顧客: いいえ、役に立ちません。

サポート: 試してみてください。

顧客: いいえ、役に立ちません。

サポート: 試してみてください。

顧客: いいえ、役に立ちません。

スタック トレースあり:

顧客: 「プログラムが動作を停止しました」というメッセージ ボックスが表示されます。

サポート: 「詳細」ボタンをクリックして、スタック トレースを送信してください。

顧客: (スタック トレースを送信します)

サポート: これは、アプリケーションがデフォルト以外のパスにインストールされている場合に機能 X によってトリガーされる、アプリケーションの既知のバグが原因です。来年リリースされる次のバージョンで修正される予定です。ただし、機能 X を無効にするか、デフォルトのインストール パスにアプリケーションを再インストールすることで回避できます。

于 2013-03-16T09:56:46.467 に答える
2

ここにいる私のオフィスでは、多くの異なる内部プロジェクトを抱えており、私のプログラムがクラッシュしたときに、他の部門の同僚が見るスタック トレースを確認するのに役立ちます。彼らは悪意がなく、何が起こっているかを知るほど知識が豊富ではありません。また、ユーザーに質問して、ユーザーが何をしていたかを判断するためのウィンドウ期間も提供します (ユーザーの記憶が新しいうちに)。スタック トレースが抑制されていた場合、または他の美しい (ただし隠蔽されている) エラー処理が行われていた場合、スタック トレース以外ではエラーがどのように発生したかを知ることができません。

于 2012-06-19T18:21:57.297 に答える
1

オープン ソース プロジェクトまたはデバッグ モードがオンになっている場所。おそらく、ユーザーはアプリケーションを使用して、テクノロジーがどのように機能して同様のアプリを作成するかを学んでいるか、自分で貢献することを計画しているかもしれません.

さまざまなタイプのユーザーがいます。彼らがこのオプションをオンにできるようにするのはいいことだと思いますが、平均的なジョーが偶然にスタックトレースをオンにする可能性がある場合、それほど簡単ではないはずです。

于 2012-06-21T15:52:36.797 に答える