問題タブ [nested-exceptions]

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 投票する
9 に答える
43181 参照

java - 特定の例外タイプがネストされた例外の原因 (原因など) であるかどうかを確認する最良の方法は?

MyCustomExceptionタイプの例外がスローされることを確認するいくつかの JUnit テストを作成しています。ただし、この例外は他の例外に何度もラップされます。たとえば、InvocationTargetException にラップされ、それがさらに RuntimeException にラップされます。

MyCustomException が実際にキャッチした例外を何らかの形で引き起こしたかどうかを判断する最善の方法は何ですか? 私はこのようなことをしたいと思います(下線を参照):

いくつかの「レイヤー」を深く呼び出すことgetCause()や、同様の醜い回避策を避けたいと思います。より良い方法はありますか?

(明らかに、Spring にはNestedRuntimeException.contains(Class)があり、これは私が望むことを行いますが、Spring は使用していません。)

CLOSED: わかり ました、ユーティリティ メソッドを回避する方法は本当にないと思います :-) 返信してくださった皆さんに感謝します!

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

vb.net - 例外でファイルを移動するにはどうすればよいですか?

要件: エラーが発生した場合 (例外がスローされた場合)、処理中のファイルをエラーのあるファイルのフォルダー (app.config 設定) に移動する必要があります。

問題: これを処理する唯一の方法は、メインの Try/Catch 内にネストされた Try/Catch を配置して、ファイルを移動しようとすることです。この方法では、移動が失敗すると、別の例外がスローされます。ディレクトリが存在し、権利が与えられていることを確認するために最善を尽くすことができることはわかっていますが、それはネットワークドライブであるため...ある時点でエラーが発生することはわかっています.

実際、それは私が思っていたよりもさらに恐ろしいものでした。

今、私は何か間違ったことをしていることを知っています。ファイルを移動してイベントを呼び出すことができるように、キャッチで発生する可能性のあるエラーを実際にどのように処理する必要がありますか?

0 投票する
9 に答える
64359 参照

java - 別の例外にネストされている例外をキャッチする

別の例外にネストされている例外をキャッチしたい。私は現在このようにしています:

これをより効率的かつエレガントにする方法はありますか?

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

c++ - C++ で例外をチェーンする必要がありますか?

独自の例外を実装した C++ プログラムの作業を終えたところです (ただし、std::exception から派生しています)。1 つの例外が連鎖反応を引き起こし、エラーが上方に伝播し、他の例外が発生する場合に私が適用した方法は、モジュール (読み取りクラス) の各適切なステップでエラー メッセージを連結することです。つまり、古い例外自体が削除され、新しい例外が作成されますが、エラー メッセージが長くなります。

これは私の小さなプログラムではうまくいったかもしれませんが、最終的には自分のアプローチにあまり満足できませんでした. 1 つには、行番号 (現時点では適用されませんが) とファイル名は、最後の例外を除いて保持されません。実際、その情報は最初の例外で最も重要です。

これは、例外を連鎖させることでより適切に処理できたと思います。つまり、古い例外は新しい例外のコンストラクターで提供されます。しかし、それはどのように実装されますか?例外がメソッドからスコープ外に出たときに例外が消滅し、それによって例外ポインターを使用できなくなるのではないでしょうか? また、例外が派生クラスである可能性がある場合、例外をコピーして保存する方法は?

これは最終的に、C++ での例外の連鎖が結局のところ良いアイデアであるかどうかを検討するように導きました。おそらく、1 つの例外を作成し、それに追加のデータを追加する必要があります (私が行ってきたように、おそらくはるかに優れた方法で)?

これに対するあなたの反応は何ですか?ある種の「例外トレース」を保持するために、別の例外によって引き起こされた例外を連鎖させる必要がありますか?また、それをどのように実装する必要がありますか? -- それとも、単一の例外を使用し、追加のデータを追加する必要がありますか? また、それはどのように行うべきですか?

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

c++ - 連鎖例外のこの実装はどのように機能しますか?

以前、C ++で例外をチェーンする方法について質問しましたが、その回答の1つは、それを実行する方法に対する気の利いた解決策を提供しました。問題は、私がコードを理解していないことです。コメントでこの種の議論をしようとするのは、あまりにも面倒です。だから私は完全に新しい質問を始める方が良いと思いました。

コードは以下に含まれており、取得できない各セクションに明確にマークを付けています。私が理解していないことの説明は、コードの下に含まれています。コードはPotatoswatterによって書かれました。


コード

コードを実行すると、次の出力が得られます。


わからないこと

  1. throw;ブロック内tryこれは今まで見たことがありません。throw;私が有効だと思った唯一の場所は、catch捕らえられたものを投げ直すためのブロックの内側でした。では、これは何をするのでしょうか?一部のデバッグでは、スローされた例外が以前にスローされたものであることが明らかに示されていますが、それは完全に異なるtryブロック内にありました。struct実際、それは宣言の外でさえありました!

  2. フィールドの交換:なぜ例外フィールドを交換する必要があるのですか?ポインタをコピーするだけで十分ではないでしょうか。これは、フィールドが指す構造がヒープから時期尚早に削除されるのを防ぐためですか?

  3. チェックlink link'sリンク:linkそうでないチェックは理解できますが(ポインタをNULL削除しても効果はありませんが)、なぜ'sリンクをチェックする必要があるのでしょうか。NULLlink

  4. ダミー例外をスローする:なぜこのダミーが必要なのですか?投げられたが、その後落とされた。チェーンの終わりとしてこれが必要なのはなぜですか?

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

exception - D プログラミング言語で、Throwable と Exception にはどのようなクラス メンバーがありますか?

私は特に、ネストされた例外を生成する方法と、それらを処理するときにそれらにアクセスする方法に特に興味があります。いくつかのドキュメントへのリンクをいただければ幸いです。私はすでにD Webサイトでそれを見つけようとしました。しかし、成功しません。特にD2に興味があります。

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

java - ネストされた例外と最新 (Java SE 7) の例外

質問

コンテキストを持つ例外とネストされた例外の長所と短所は何ですか?

気にする理由

Java のバックグラウンドがない、または Java のバックグラウンドを知らない開発者として、オープン ソース プロジェクトの例外処理を更新する可能性のある機会に出くわしましたが、私が行う変更が有益であることを確認したいと考えています。

問題のプロジェクトはddlutilsです。現在、org.apache.commons.lang.exception を使用しています。

「以前の Java バージョンの場合に、JDK 1.4 スタイルのネストされた例外機能を提供します。」

Commons Langの現在のバージョン(執筆時点では 3.1) は、次のように述べている org.apache.commons.lang3.exception を使用しています。

「コンテキストを持つ例外の概念が含まれています。つまり、そのような例外にはキーと値のマップが含まれます。これにより、呼び出しプロセスに有用な形式で例外時に貴重な状態情報を渡す簡単な方法が提供されます。」

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

java - クラスパスの問題: NoClassDefException :

これが問題です。別のプロジェクト Y のサービスを使用するこの 1 つのプロジェクト X があります。Y は、Eclipse を使用して jar ファイルとしてエクスポートされ、プロジェクトの X ビルド パスに追加されました。YのStringEncryptorServiceにあるremoteServiceのコンストラクターで依存関係の初期化に問題があるため、SpringがXで「classService」をロードするクラスがロードできないことがあります。Y の jar 内のクラスについて何かを述べています。コンパイル エラーがないため、ビルド パスは良好です。ありがとうございます。任意の回答をいただければ幸いです

Y プロジェクトにある commons-codec-1.8 を使用しました。jarファイルをプロジェクトXの参照ライブラリに移動できることは知っていますが、Yで作成して、Aなどの他のプロジェクトを作成するときに、yをjarとしてAにエクスポートできるかどうか疑問に思います.

編集:問題は、スプリングが共通コーデックを見つけられないことだと思います。プロジェクト Y のライブラリの下にあるので、プロジェクト X にエクスポートしたプロジェクトです。プロジェクト X のスプリングがプロジェクト Y のライブラリをスキャンできるように何かできますか? または具体的には common-codec.jar のライブラリに。私が間違っている場合は、間違っている場合は訂正してください。

回答: jar を X のクラスパスに明示的に追加するか、外部 jar としてプロジェクトに追加するか、プロジェクトを eclipse のクラスパスに追加します。ライブラリ common-codec.jar をプロジェクト Y ライブラリに常に配置したいので、プロジェクト X の application-context.xml に次のように追加しました。

Special Thanks to: Harish Kumar. ありがとう..


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

mysql - 「jdbc接続のネストされた例外を取得できませんでした」というメッセージが引き続き表示されます

ローカル DB でローカルに CAS サーバーを使用しようとしていますが、could not get jdbc connection nested exceptionエラーが発生し続けます。次の方法で deployerconfigcontext をセットアップしています

私が得る完全なエラーは