問題タブ [exception]

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

wcf - WCF - Faults / Exceptions versus Messages

We're currently having a debate whether it's better to throw faults over a WCF channel, versus passing a message indicating the status or the response from a service.

Faults come with built-in support from WCF where by you can use the built-in error handlers and react accordingly. This, however, carries overhead as throwing exceptions in .NET can be quite costly.

Messages can contain the necessary information to determine what happened with your service call without the overhead of throwing an exception. It does however need several lines of repetitive code to analyze the message and determine actions following its contents.

We took a stab at creating a generic message object we could utilize in our services, and this is what we came up with:

If all my service calls return this item, I can consistently check the "Success" property to determine if all went well. I then have an error message string in the event indicating something went wrong, and a generic item containing a Dto if needed.

The exception information will have to be logged away to a central logging service and not passed back from the service.

Thoughts? Comments? Ideas? Suggestions?

Some further clarification on my question

An issue I'm having with fault contracts is communicating business rules.

Like, if someone logs in, and their account is locked, how do I communicate that? Their login obviously fails, but it fails due to the reason "Account Locked".

So do I:

A) use a boolean, throw Fault with message account locked

B) return AuthenticatedDTO with relevant information

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

c++ - 浮動小数点例外の C++ 例外への変換

x86 Linux で浮動小数点例外 (シグナル) を C++ 例外に変換することは可能ですか?

これはデバッグ用であるため、移植性や不完全性は問題ありません (たとえば、すべてのデストラクタが呼び出されることが 100% 保証されていない場合)。

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

c++ - gccはLinuxでC++例外のスタック展開をどのように実装しますか?

gccはLinuxでC++例外のスタック展開をどのように実装しますか?特に、フレームを展開するときにどのデストラクタを呼び出すか(つまり、どのような種類の情報が保存され、どこに保存されているか)をどのように知るのでしょうか。

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

java - アーキテクチャ レベルで例外をどのように計画する必要がありますか?

アーキテクチャの観点から例外をどのように使用するかを計画するための適切なリソースはありますか? (または、ここで直接提案を提供してください。) 私が取り組んだプロジェクトでは、いくつかの一般的な例外が何度も何度も使用され、意味を失う傾向があることがわかりました。から: http://jamesjava.blogspot.com/2007/10/exception-plan.html

0 投票する
33 に答える
1049843 参照

exception - 「java.lang.OutOfMemoryError: PermGen space」エラーの処理

最近、Web アプリケーションで次のエラーに遭遇しました。

java.lang.OutOfMemoryError: PermGen スペース

これは、Tomcat 6 および JDK 1.6 で実行される典型的な Hibernate/JPA + IceFaces/JSF アプリケーションです。どうやらこれは、アプリケーションを数回再デプロイした後に発生する可能性があります。

何が原因で、それを避けるために何ができるでしょうか? 問題を解決するにはどうすればよいですか?

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

python - assertRaises() を使用して Python クラスの __init__() メソッドを単体テストするにはどうすればよいですか?

私はクラスを持っています:

そして、コンストラクターに渡された正しくない引数が適切にエラーを発生させることを確認するはずの単体テスト:

しかし、私は...

なんで?この Error オブジェクトをどこで定義する必要がありますか? デフォルトの例外タイプとして組み込まれていると思いましたよね?

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

c# - ASP.NET C# での例外のスロー

ただ言うことと、あなたがキャッチしている例外であるthrow;throw ex;仮定することの間に違いはありますか?ex

0 投票する
18 に答える
18792 参照

c# - ビジネス オブジェクト、検証、および例外

例外とその使用に関するいくつかの質問と回答を読んでいます。例外は例外、未処理の場合にのみ発生させるべきだという強い意見があるようです。そのため、検証がビジネス オブジェクトでどのように機能するのか疑問に思いました。

オブジェクトのプロパティのゲッター/セッターを持つビジネス オブジェクトがあるとします。値が 10 ~ 20 であることを検証する必要があるとします。これはビジネス ルールであるため、ビジネス オブジェクトに属します。そのため、検証コードがセッターに入っていることを暗示しているようです。これで、UI データがデータ オブジェクトのプロパティにバインドされました。ユーザーは 5 を入力するため、ルールは失敗する必要があり、ユーザーはテキスト ボックスから移動できません。. UI はプロパティにデータバインドされているため、setter が呼び出され、ルールがチェックされて失敗します。ルールが失敗したことを示すためにビジネス オブジェクトから例外を発生させた場合、UI はそれを取得します。しかし、それは例外の好ましい使用法に反しているようです。それがセッターであることを考えると、セッターの「結果」は実際にはありません。

では、検証はどのように機能するのでしょうか?

編集: ここでは、単純化しすぎた例を使用した可能性があります。上記の範囲チェックのようなものは UI で簡単に処理できますが、検証がより複雑な場合、たとえば、ビジネス オブジェクトが入力に基づいて数値を計算し、計算された数値が範囲外の場合は拒否する必要があります。これは、UI に含めるべきではない、より複雑なロジックです。

また、すでに入力されているフィールドに基づいて入力された追加データも考慮されます。たとえば、在庫や現在のコストなどの特定の情報を取得するために、注文にアイテムを入力する必要があります。ユーザーは、この情報を入力してさらに入力するかどうかを決定する必要がある場合があります (注文するユニット数など)。さらなる検証が行われるように。アイテムが有効でない場合、ユーザーは他のフィールドに入力できるようにする必要がありますか? ポイントは何ですか?

0 投票する
14 に答える
27841 参照

c++ - C++ で例外指定子を使用する必要がありますか?

C++ では、例外指定子を使用して、関数が例外をスローするかどうかを指定できます。例えば:

次の理由から、実際にそれらを使用することに疑問があります。

  1. コンパイラは厳密な方法で例外指定子を実際に強制するわけではないため、メリットは大きくありません。理想的には、コンパイル エラーを取得したいと考えています。
  2. 関数が例外指定子に違反した場合、標準的な動作はプログラムを終了することだと思います。
  3. VS.Net では、throw(X) を throw(...) として扱うため、標準への準拠は強くありません。

例外指定子を使用する必要があると思いますか?
「はい」または「いいえ」で答え、その理由を説明してください。

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

c# - Application.ThreadException および AppDomain.CurrentDomain.UnhandledException を通過する例外

アプリケーションがハングして、アプリケーションの「未処理の例外」ダイアログではなく、デフォルトの「この問題についてマイクロソフトに連絡してください」ポップアップが表示されるという問題があります。

アプリケーション コードでは、Application.ThreadException と AppDomain.CurrentDomain.UnhandledException の両方が、エラー ログをディスクに書き込み、スクリーンショットをディスクに保存し、わかりやすいダイアログ ボックスを表示するメソッドにリダイレクトされます。

しかし、このエラーが発生すると、これら 3 つのことはいずれも起こりません。私が得るのは、イベントビューアでこれだけです:

EventType clr20e3、P1 myapp.exe、P2 4.0.0.0、P3 47d794d4、P4 mscorlib、P5 2.0.0.0、P6 471ebc5b、P7 15e5、P8 27、P9 system.argumentoutofrange、P10 NIL

アプリケーションが数時間実行された後にのみエラーが発生するように見えることを考えると、メモリ リークの問題ではないかと思います。「clr20e3」を少し検索しましたが、ASP.Net のものしか見つかりませんでした。私のアプリケーションは Windows Forms (.Net 2.0) exe で、C# と一部のアンマネージ C++ の両方でかなりの数のアセンブリを使用しています。

エラー処理メソッドのエラーである可能性もあると思います-いくつかの回答が示唆するように、エラーハンドラーの開始時にログを記録しようとするかもしれません(ただし、とにかくそれがほとんどの場合...)。

この問題を解決する助けがあれば、それが解決策であろうと、問題の根本原因を見つける方法の提案であろうと、大歓迎です。

更新: 元のバグの根本的な原因は、負のインデックス (system.argumentoutofrange) を持つ配列にアクセスすることでした。なぜこれがトラップされなかったのかは少し謎ですが、両方の例外が同じ処理コードに送信されたことを考えると、(たとえば) 両方が呼び出されてリソースをめぐって争うという状況がなかったのではないかと思います。 (たとえば、ログ ファイル)?

エラー処理コードで他の何よりも先に EventLog.WriteEntry を実行することで、これを証明することができました。エラー処理での再入力を防ぐフラグを追加したので、問題はないようです...