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

.net - カスタム .NET 例外をシリアル化可能にする正しい方法は何ですか?

より具体的には、それ自体がシリアライズ可能である場合とそうでない場合があるカスタムオブジェクトが例外に含まれている場合です。

次の例を見てください。

この例外がシリアル化および逆シリアル化された場合、2 つのカスタム プロパティ (ResourceNameおよびValidationErrors) は保持されません。プロパティは を返しnullます。

カスタム例外のシリアル化を実装するための一般的なコード パターンはありますか?

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

wcf - SilverlightでWCF例外をキャッチする最良の方法は?

WCF サービスを使用する Silverlight 2 アプリケーションがあります。そのため、サービスのメソッドへのすべての呼び出しに非同期コールバックを使用します。これらの呼び出しの前または実行中に、サービスが実行されていない場合、サービスがクラッシュした場合、またはネットワークがダウンした場合などは、期待どおりに例外が生成されます。問題は、この例外をキャッチする方法がわからないことです。

  • これは非同期呼び出しであるため、begin 呼び出しを try/catch ブロックでラップして、プログラムがその時点から移動した後に発生する例外を取得することはできません。

  • サービス プロキシは自動的に生成されるため、EndInvoke を呼び出すすべての生成済み関数 (例外が実際に表示される場所) に try/catch ブロックを配置することはできません。これらの生成された関数は、コール スタック内の外部コードにも囲まれているため、スタック内に try/catch を置く場所は他にありません。

  • コールバック関数が呼び出される前に例外が発生するため、try/catch をコールバック関数に入れることができません。

  • App.xaml.cs には Application_UnhandledException 関数があり、未処理の例外をすべてキャプチャします。これを使用できますが、面倒な方法のようです。この関数は、本当に予期しないエラー (別名バグ) 用に予約しておき、特定の方法で対処したいすべての状況でこの関数のコードを終わらせないようにしたいと思います。

明らかな解決策がありませんか?または、Application_UnhandledException を使用して立ち往生していますか?

[編集]
以下で説明するように、Error プロパティはまさに私が探していたものです。ループのために私をスローしているのは、例外がスローされ、キャッチされていないように見えるという事実ですが、実行は続行できます。Application_UnhandledException イベントをトリガーし、VS2008 で実行が中断されますが、デバッガーで続行すると実行を続行できます。それは実際には問題ではなく、奇妙に思えるだけです。

0 投票する
28 に答える
88478 参照

c# - 「catch」または「finally」のスコープで「try」で変数が宣言されないのはなぜですか?

C# および Java (場合によっては他の言語も) では、"try" ブロックで宣言された変数は、対応する "catch" ブロックまたは "finally" ブロックのスコープ内にありません。たとえば、次のコードはコンパイルされません。

このコードでは、catch ブロック内の s への参照でコンパイル時エラーが発生します。これは、s が try ブロック内でのみスコープ内にあるためです。(Java では、コンパイル エラーは「s を解決できません」です。C# では、「名前 's' は現在のコンテキストに存在しません」です。)

この問題の一般的な解決策は、try ブロック内ではなく、try ブロックの直前に変数を宣言することです。

ただし、少なくとも私にとっては、(1) これは不格好な解決策のように感じられ、(2) プログラマーが意図したよりも大きなスコープを持つ変数が発生します (メソッドのコンテキストだけではなく、メソッドの残りの部分全体)。 try-catch-finally)。

私の質問は、この言語設計の決定 (Java、C#、および/または他の適用可能な言語) の背後にある理論的根拠は何ですか?

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

winforms - WinForms TraceListener で現在の例外を取得するにはどうすればよいですか

アプリで発生した未処理のエラーをログに記録するカスタム TraceListener でセットアップされた既存の WinForms アプリを変更しています。TraceListener が例外のメッセージ部分 (ログに記録されるもの) を取得するように思えますが、他の例外情報は取得しません。例外オブジェクトを取得できるようにしたいと思います(スタックトレースやその他の情報を取得するため)。

私がよく知っている ASP.NET では、Server.GetLastError を呼び出して最新の例外を取得しますが、もちろん WinForms では機能しません。

最新の例外を取得するにはどうすればよいですか?

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

linq - LINQ FormatException

現在、既存のデータベースがあり、LINQtoSQL ジェネレーター ツールを使用してクラスを作成しています。ツールはこのデータベースに対して正常に機能しており、そのツールにエラーはありません。
データに対して LINQ to SQL クエリを実行すると、テーブル内に何らかの無効なデータを含む行があり、この行を実行すると System.FormatException がスローされます。それが何に由来するのか誰か知っていますか?select句に1つずつ追加せずに、効果のある列を絞り込む方法を知っている人はいますか?

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

c# - WCF の障害と例外

初めて WCF サービスを作成しています。サービスとそのすべてのクライアント (少なくとも現時点では) は C# で記述されています。サービスは、渡されたデータに対して多くの入力検証を行う必要があるため、クライアントに無効なデータを示す何らかの方法が必要です。私はフォルトと例外、例外をフォルトにラップすること、そして私をさらに混乱させる多くの矛盾する記事について多くのことを読んできました。このケースを処理する適切な方法は何ですか?

例外を完全に回避し、結果の戻りメッセージをパッケージ化する必要がありますか? 特別なフォールトまたは特別な例外を作成する必要がありますか?それとも、WCF 以外の検証関数の場合のように ArgumentExceptions をスローする必要がありますか?

私が今持っているコード ( MSDNの影響を受ける) は次のとおりです。

メソッドには [FaultContract(typeof(ValidationFault))] があります。それで、これはこれにアプローチする「正しい」方法ですか?

0 投票する
24 に答える
29655 参照

language-agnostic - 例外コードとリターン コードのどちらを好みますか、またその理由は何ですか?

私の質問は、ほとんどの開発者がエラー処理、例外、またはエラー リターン コードのどちらを好むかということです。特定の言語 (または言語ファミリー) と、どちらかを優先する理由を記入してください。

私は好奇心からこれを尋ねています。個人的には、エラー リターン コードの方が爆発的でなく、ユーザー コードが望まない場合に例外のパフォーマンス ペナルティを支払うことを強制しないため、エラー リターン コードを好みます。

更新:すべての回答に感謝します! 例外を伴うコードフローの予測不可能性は嫌いですが、そう言わざるを得ません。リターンコード(およびその兄のハンドル)に関する答えは、コードに多くのノイズを追加します。

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

wcf - WCF - サービス内で FaultExceptions をスローするオーバーヘッド

サービス間でビジネス ルールをやり取りするためにメッセージと障害の例外を使用する方法について質問を投稿しました。

この例外をネットワーク経由でスローするためにオーバーヘッドが発生するという印象を受けましたが、シリアル化および逆シリアル化されるのは単なるメッセージであることを考えると、それらは実際にはまったく同じものでした。

しかし、これにより、一般的に例外をスローすること、またはより具体的には FaultExceptions をスローすることについて考えるようになりました。

今、私のサービス内で、私が使用する場合

「あなたのアカウントはアクティブ化されていません」のような単純なビジネス ルールを伝えるために、これによりどのようなオーバーヘッドが発生しますか? .NET で通常の例外をスローするのと同じオーバーヘッドですか? または、WCF サービスは、フォールト コントラクトを使用してこれらをより効率的に処理しますか。

したがって、私のユーザーの例では、これがサービスメソッドを記述するための最適な/推奨される方法です

オプション a

オプションb

0 投票する
25 に答える
312599 参照

java - java.lang.VerifyError が発生する原因

以下について調べていますjava.lang.VerifyError

サーブレットがデプロイされている jboss サーバーが開始されたときに発生します。jdk-1.5.0_11 でコンパイルされており、jdk-1.5.0_15 で再コンパイルしようとしましたが、成功しませんでした。つまり、コンパイルは正常に実行されますが、展開すると java.lang.VerifyError が発生します。

メソッド名を変更したところ、次のエラーが発生しました。

メソッド シグネチャがさらに表示されていることがわかります。

実際のメソッド シグネチャは

私はすでにそれを見ようとしましたがjavap、それはメソッドの署名を本来あるべきものにします。

私の他の同僚がコードをチェックアウトし、コンパイルしてデプロイすると、同じ問題が発生します。ビルド サーバーがコードを取得して開発環境またはテスト環境 (HPUX) にデプロイすると、同じエラーが発生します。また、Ubuntu を実行している自動テスト マシンでも、サーバーの起動時に同じエラーが表示されます。

アプリケーションの残りの部分は問題なく動作しますが、1 つのサーブレットが故障しているだけです。どこを見るべきかについてのアイデアは役に立ちます。

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

java - Java:MetalFileChooserUI $ IndentIcon.getIconWidthでNPEを防止しますか?

Windowsシステムの場合。で次のNPEを取得しますFileChooser。これは既知のバグであり、まだ太陽によって修正されていません。http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6342301

誰かがこの例外を防ぐための回避策を知っていますか?

ありがとう。アンドレ

スレッド"AWT-EventQueue-2"の例外javax.swing.plaf.metal.MetalFileChooserUI$IndentIcon.getIconWidth(Unknown Source)at javax.swing.SwingUtilities.layoutCompoundLabelImpl(Unknown Source)atjavax.swingのjava.lang.NullPointerException。 SwingUtilities.layoutCompoundLabel(Unknown Source)at javax.swing.plaf.basic.BasicLabelUI.layoutCL(Unknown Source)at javax.swing.plaf.basic.BasicLabelUI.getPreferredSize(Unknown Source)at javax.swing.JComponent.getPreferredSize(Unknown Source )at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)at javax.swing.plaf.basic.BasicListUI $ Handler.valueChanged(Unknown Source )javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)atjavax.swing。DefaultListSelectionModel.fireValueChanged(Unknown Source)at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)atjavax.swing.DefaultListSelectionModel。 setSelectionInterval(Unknown Source)at javax.swing.JList.setSelectedIndex(Unknown Source)at javax.swing.plaf.basic.BasicComboPopup.setListSelection(Unknown Source)at javax.swing.plaf.basic.BasicComboPopup.access $ 300(Unknown Source) javax.swing.plaf.basic.BasicComboPopup $ Handler.itemStateChanged(Unknown Source)at javax.swing.JComboBox.fireItemStateChanged(Unknown Source)at javax.swing.JComboBox.selectedItemChanged(Unknown Source)atjavax.swing.JComboBox。contentsChanged(不明なソース)