問題タブ [error-handling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
1971 参照

php - オブジェクト プロパティをメソッド プロパティのデフォルトとして使用する

私はこれをやろうとしています (予期しない T_VARIABLE エラーが発生します):

私が使用しているオブジェクトには"defaultWeight"、重量を指定しない場合にすべての新しい出荷が取得するパラメーターがあるため、重量にマジックナンバーを入れたくありません。defaultWeightを出荷グループごとに変更するため、出荷自体に を入れることはできません。以下よりも良い方法はありますか?

0 投票する
4 に答える
2405 参照

c# - C#で重複するエラー処理コードを減らしますか?

例外処理の仕組みに完全に満足したことはありません。多くの例外があり、try / catchがテーブルにもたらします(スタックの巻き戻しなど)が、その過程で多くのOOモデルが壊れているようです。

とにかく、ここに問題があります:

ネットワーク化されたファイルIO操作をラップまたは含むクラスがあるとします(たとえば、どこかの特定のUNCパスにあるファイルの読み取りと書き込み)。さまざまな理由で、これらのIO操作を失敗させたくないので、失敗を検出した場合は再試行し、成功するかタイムアウトに達するまで再試行を続けます。私はすでに便利なRetryTimerクラスを持っており、これをインスタンス化して、再試行の間に現在のスレッドをスリープさせ、タイムアウト期間がいつ経過したかなどを判断するために使用できます。

問題は、このクラスのいくつかのメソッドに多数のIO操作があり、それぞれをtry-catch/retryロジックでラップする必要があることです。

コードスニペットの例を次に示します。

では、クラス全体のすべてのファイルIO操作でこのコードのほとんどが重複しないようにするにはどうすればよいでしょうか。私の解決策は、匿名のデリゲートブロックと、渡されたデリゲートブロックを実行するクラスの単一のメソッドを使用することでした。これにより、他の方法でこのようなことができるようになりました。

私はこれがやや好きですが、それはまだまだ望まれていません。他の人がこのような問題をどのように解決するのか聞きたいです。

0 投票する
5 に答える
16167 参照

winforms - winforms コントロールのグローバル例外処理

ASP.NET 1.1 プロジェクトに取り組んでいるとき、私は常に Global.asax を使用してすべてのエラーをキャッチしました。ホストされたIEコントロールになるWindowsフォームユーザーコントロールですべての例外をキャッチする同様の方法を探しています。このようなことをするための適切な方法は何ですか?

0 投票する
8 に答える
1079 参照

c# - contains()の代わりに未処理の例外を使用していますか?

作業しているオブジェクトに、それに関連付けられている他のオブジェクトのコレクションがあるとします。たとえば、WinFormのControlsコレクションです。コレクション内の特定のオブジェクトをチェックしたいのですが、コレクションにContains()メソッドがありません。これに対処するにはいくつかの方法があります。

  • Contains()コレクション内のすべてのアイテムをループして、それらの1つが探しているものであるかどうかを確認することにより、独自のメソッドを実装します。これは「ベストプラクティス」のアプローチのようです。
  • 私は最近、ループの代わりに、次のようにtryステートメント内のオブジェクトにアクセスしようとしたコードに出くわしました。

私の質問は、プログラミングの実践がどれほど貧弱であると思いますか、そしてその理由は何ですか?コレクションのループと比較して、パフォーマンスはどうですか?

0 投票する
8 に答える
38193 参照

asp.net - ASP.NET アプリでエラー (例外) をどのように記録しますか?

ASP.NET アプリケーションでエラーをログに記録する最良の方法を探しています。アプリケーションでエラーが発生したときに、例外と現在のリクエストに関する詳細情報が記載された電子メールを受信できるようにしたいと考えています。

私の会社では、Global.asax Application_Error 内のすべてをキャッチする独自の ErrorMailer を使用していました。「OK」でしたが、あまり柔軟でも設定可能でもありませんでした。

最近、NLog に切り替えました。エラーのさまざまなターゲットを定義し、それらをフィルター処理し、バッファーすることができます (まだ試していません)。とても良い改善です。

しかし最近、この目的のために .Net フレームワークに名前空間全体があることを発見しました: System.Web.Managementであり、web.configのhealthMonitoringセクションで構成できます。

.Net ヘルス モニタリングを使用したことがありますか? エラーログの解決策は何ですか?

0 投票する
2 に答える
327 参照

com - RDML で COM オブジェクトからのエラーを処理する方法はありますか?

RDML で COM オブジェクトからのエラーを処理する方法はありますか? たとえば、 のような Word VBA メソッドを呼び出すとPasteSpecial、エラーが返され、LANSA アプリケーションがクラッシュします。これらのエラーの処理を許可するドキュメントが見つかりません。

実際、一般的にエラー処理は LANSA と RDML の弱点ですが、それは別の話題です。

0 投票する
4 に答える
5482 参照

sharepoint - SharePointワークフローからエラーを報告するための最良の方法は何ですか?

ワークフローにカスタムアクションがあり、問題が発生したときにユーザーにエラーを報告したいと思います。それを行うための最良の方法は何ですか?

UPD:理想的には、ワークフローをエラー状態にして、ワークフローログにメッセージを記録したいと思います。それは不可能のようです。私がそれに近づくことができる最も近いものは何ですか?再利用可能なソリューションが必要です。これは、SharePointDesignerでカスタムアクションを使用するときにユーザーが簡単にセットアップできるものです。


質問に詳細を追加しました。

エラーの保存を処理する@mauroですが、意味のある方法でエラーをユーザーに表示するにはどうすればよいですか?

@AdamSaneそれはかなり壊れやすい解決策のようです。これを1つのサイトに一度設定するだけでは問題ありません。他の人がSPDを使用して追加できるものが必要です。

0 投票する
7 に答える
6574 参照

php - PHP でキャッチされない例外をログに記録するにはどうすればよいですか?

エラーを例外に変換する方法を見つけました。キャッチされない場合は適切に表示しますが、便利な方法でログに記録する方法がわかりません。それらを単にファイルに書き込むだけでは役に立ちませんよね?また、例外の原因がまだわからない場合、データベースにアクセスする危険がありますか?

0 投票する
6 に答える
109598 参照

c# - SQLServer タイムアウト例外をキャッチする方法

異なる方法で処理できるように、SQL サーバーのタイムアウト例外を明確にキャッチする必要があります。SqlException をキャッチして、メッセージ文字列に "Timeout" が含まれているかどうかを確認できることはわかっていますが、それを行うためのより良い方法があるかどうか疑問に思っていましたか?

0 投票する
3 に答える
3908 参照

exception - .NET 2.0でusingブロックで例外をキャッチする方法は?

IDisposableを実装するオブジェクトがある場合、最近、usingブロックをますます活用しようとしていますが、私が理解していないことの1つは、通常のtry / catch/finallyのように例外をキャッチする方法です...私を正しい方向に向けるためのコードサンプルはありますか?

編集:回答を読んだ後、質問が変更されました。それは「.NET2.0でusingブロックで例外をスローする方法」でした。しかし、私は実際に、usingブロック内でこれらの例外をキャッチする方法を探していました。


自分のキャッチングブロックをusingブロック内で転がす方法の詳細を探しています。

編集:私が避けたかったのは、@Blairが示したように使用ブロック内でtry/ catch/finallyを使用する必要があることです。しかし、おそらくこれは問題ではありません...

編集:@ブレア、これはまさに私が探していたものです、詳細な返信に感謝します!