問題タブ [exception-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 投票する
11 に答える
43396 参照

.net - カスタム WCF 動作拡張要素の型が見つからないのはなぜですか?

2 つのプロジェクトを含むソリューションがあります。1 つのプロジェクトは ASP.NET Web アプリケーション プロジェクトで、もう 1 つはクラス ライブラリです。Web アプリケーションには、クラス ライブラリへのプロジェクト参照があります。これらはどちらも厳密な名前ではありません。

「フレームワーク」と呼ぶクラス ライブラリには、エンドポイント動作 (IEndpointBehavior の実装) と構成要素 (BehaviorExtensionsElement から派生したクラス) があります。構成要素は、構成を介してエンドポイントの動作をサービスにアタッチできるようにするためのものです。

Web アプリケーションには、AJAX 対応の WCF サービスがあります。web.config では、カスタム動作を使用するように AJAX サービスを構成しています。構成の system.serviceModel セクションは非常に標準的で、次のようになります。

実行時には、これは完全に機能します。AJAX 対応の WCF サービスは、カスタム構成されたエンドポイントの動作を正しく使用します。

問題は、新しい AJAX WCF サービスを追加しようとしたときです。[追加] -> [新しい項目...] を選択して [AJAX 対応の WCF サービス] を選択すると、.svc ファイルと分離コードが追加されるのを見ることができますが、web.config ファイルを更新しようとすると、次のエラーが発生します。

構成ファイルは、WCF サービス ライブラリの有効な構成ファイルではありません。

拡張機能「customEndpointBehavior」に登録されたタイプ「Framework.MyBehaviorExtensionsElement、Framework、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null」をロードできませんでした。

明らかに、構成は実行時に完全に機能するため、完全に有効です。動作構成から要素を一時的に削除してから、AJAX 対応の WCF サービスを追加すると、すべて問題なく実行されます。

残念ながら、さまざまな構成の複数のサービスが存在する大規模なプロジェクトでは、すべてのカスタム動作を一時的に削除するとエラーが発生しやすくなります。ウィザードを使用せずにすべてを手動で行うことができることはわかっていますが、誰もができるわけではありません。ウィザードとすべてを使用することを意図したとおりに製品を使用できると便利です.

カスタム WCF 動作拡張要素の型が見つからないのはなぜですか?

更新/説明:

  • 設計時ではなく、実行時に機能します。
  • サービスを追加しようとすると、Framework アセンブリが Web プロジェクトの bin フォルダーにあります。
  • サービスを手動で (「構成なしで」) 追加することはできますが、すぐに使用できる項目テンプレートが機能する必要があります。それが質問の全体的な目標です。
  • この問題は、Visual Studio 2008 で見られます。VS 2010 では、これは解決されているようです。

この問題を Microsoft Connect に提出したところ、カスタム構成要素を GAC に配置するか、IDE フォルダーに配置する必要があることがわかりました。少なくとも今のところ、彼らはそれを修正しません。この質問に対する「回答」として提供された回避策を投稿しました。

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

c# - VB.NETのCatchと同等のC#...いつ

VB.NETでは私はよくCatch…When

に相当するC#はありCatch…Whenますか?

可能であればif、a内のステートメントを使用することに頼りたくありません。catch

0 投票する
16 に答える
73002 参照

c# - Windows フォーム アプリケーションでの例外処理のベスト プラクティスは?

現在、最初の Windows フォーム アプリケーションを作成中です。C# の本を何冊か読んだので、C# が例外を処理するために必要な言語機能を比較的よく理解できました。ただし、それらはすべて非常に理論的なものであるため、基本的な概念をアプリケーションで優れた例外処理モデルに変換する方法については、まだ感じていません。

この件に関する知恵の真珠を共有したい人はいますか? 私のような初心者が犯すよくある間違いと、アプリケーションをより安定して堅牢にする方法で例外を処理するための一般的なアドバイスを投稿してください。

私が現在解決しようとしている主なことは次のとおりです。

  • いつ例外を再スローする必要がありますか?
  • ある種の中心的なエラー処理メカニズムを持つべきですか?
  • スローされる可能性のある例外を処理すると、ディスク上のファイルが存在するかどうかなどを事前にテストする場合と比較して、パフォーマンスが低下しますか?
  • すべての実行可能コードを try-catch-finally ブロックで囲む必要がありますか?
  • 空の catch ブロックが許容される場合はありますか?

すべてのアドバイスに感謝します!

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

java - finallyブロックに入る前に例外が発生したかどうかを検出することはできますか?

Javaでは、finallyブロックを実行する前に例外が発生したかどうかを検出するための洗練された方法はありますか?「close()」ステートメントを処理する場合、finallyブロック内で例外処理が必要になるのが一般的です。理想的には、両方の例外を維持し、それらを伝播する必要があります(両方に有用な情報が含まれている可能性があるため)。これを行うために私が考えることができる唯一の方法は、try-catch-finallyスコープの外に変数を設定して、スローされた例外への参照を保存することです。次に、「保存された」例外を、finallyブロックで発生する例外とともに伝播します。

これを行うためのよりエレガントな方法はありますか?おそらくこれを明らかにするAPI呼び出しですか?

これが私が話していることのいくつかの大まかなコードです:

明らかに、例外をメンバー変数として保存したり、メソッドから返したりするなど、他にも同様の問題がいくつかありますが、もう少しエレガントなものを探しています。

多分何かのようなThread.getPendingException()ものか似たようなものですか?さらに言えば、他の言語でエレガントな解決策はありますか?

この質問は、興味深い質問を提起した別の質問のコメントから実際に生まれました。

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

java - ClassCastException をキャッチするにはどうすればよいですか?

xml からオブジェクトを逆シリアル化するときに ClassCastException をキャッチしようとしています。

そう、

それでも、例外がキャッチされないため、これは行われません。何を提案しますか?

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

logging - エンタープライズ ライブラリ レビュー?

例外処理とロギング用のエンタープライズ ライブラリは、提供される機能のメモリ使用量に関して効率的ですか?

長所と短所は何ですか?ありがとう

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

c# - 別のスレッドから例外をキャッチする

別のスレッドで実行されているメソッドがあります。スレッドは、Windows アプリケーションのフォームから作成および開始されます。スレッド内から例外がスローされた場合、それをメイン アプリケーションに戻す最善の方法は何ですか。現在、メイン フォームへの参照をスレッドに渡し、スレッドからメソッドを呼び出し、メイン アプリケーション スレッドによってメソッドが呼び出されるようにしています。今のやり方に慣れていないので、これを行うためのベストプラクティスの方法はありますか?

私のフォームの例:

私のスレッドクラスの例:

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

spring - jspでスローされたNullPointerExceptionを処理するようにSpringHandlerExceptionResolverを構成するにはどうすればよいですか?

jspから、たとえば次を使用してNullPointerExceptionがスローされます <% null.toString(); %>

この例外はHandlerExceptionResolverによって処理されませんが、Webコンテナー(tomcat)にスローされ、に変換されますcode 500 error

HandlerExceptionResolverでそのエラーを取得するようにSpringを構成するにはどうすればよいですか?

詳細:

  • Springは、コントローラー内でスローされた例外を処理するように構成できますが、ビューによってスローされた例外を処理することはできません。
  • もちろん、NullPointerExceptionを解決することはできますが、ユーザーにわかりやすいメッセージを表示するために、Webアプリケーションで発生する可能性のある問題を適切に解決するソリューションを設計したいと思います。
0 投票する
13 に答える
12411 参照

c++ - C ++では、エラーコードを返すだけでなく、例外を使用してtry / catchを使用する利点は何ですか?

私は長い間CとC++をプログラムしてきましたが、これまで例外を使用してtry/catchを実行したことはありません。関数にエラーコードを返す代わりにそれを使用する利点は何ですか?

0 投票する
1 に答える
379 参照

visual-studio - 例外を伴うデバッグ:「スロー時にブレーク」を回避する方法

Debugging->Exceptions オプションをクリアして、適切に処理する例外を回避し、適切に処理されない後続の例外のソースを見つけるオプションをBreak when thrown設定することにうんざりしています。Break when thrown

Break when thrownプリプロセッサ ディレクティブなどを使用して、特定の try ブロックを から除外する方法が必要です。マクロを記録しようとしましたが、[デバッグ] -> [例外] ダイアログが開くだけです。

どのメソッドがBreak when thrownデバッグから除外されるかを、より大まかにでも指定すると便利です。

これは夢物語ですか?