問題タブ [swallowed-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.
java - 飲み込まれたとしても、JUnitを強制的に未チェックの例外で失敗させる方法はありますか
JUnit を使用して、単体テストを持たないレガシー コードの高レベル テストを作成しています。
このコードの多くは、NullPointerExceptions のようなさまざまな未チェックの例外を "飲み込んで" います (たとえば、スタック トレースを出力して null を返すだけです)。したがって、単体テストは、下位レベルのコードのさまざまなポイントで一連の災害があっても通過できます。
飲み込まれたとしても、最初のチェックされていない例外でテストを失敗させる方法はありますか?
私が考えることができる唯一の代替手段は、System.err をリダイレクトし、例外の出力を分析するカスタム JUnit ラッパーを作成することです。
language-agnostic - なぜ優れたプログラマーは時々黙って例外を飲み込むのですか?
私はそれが悪であることを知っていますが、優れたプログラマーによって書かれたコードに飲み込まれた例外を見てきました。ですから、この悪い習慣には少なくとも1つの良い点があるのではないかと思います。
言い換えれば、それは悪いことですが、なぜ良いプログラマーがまれにそれを使用するのですか?
.net - WPF アプリケーションで InvalidDeploymentException が発生する原因は何ですか?
WPF アプリケーションを開発しました。デバッグ モードで起動すると、出力に次のように表示されます。
'WpfApplication1.vshost.exe' (Managed (v2.0.50727)): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Deployment\2.0.0.0__b03f5f7f11d50a3a\System.Deployment.dll', Symbols loaded. System.Deployment.dll 追加情報: アプリケーション ID が設定されていません。
このアプリケーションのコントロールを別の WPF アプリケーションで使用すると、出力に 7 つのメッセージが表示されます。それにもかかわらず、アプリケーションは正常に動作します。
これらの例外がスローされた理由を説明していただけますか? メソッドがそれらを発生させることがわかりましApplicationDeployment.get_CurrentDeployment
た。MSDN には、「ClickOnce 以外のアプリケーションからこの静的プロパティを呼び出そうとした」場合にこの例外が発生すると書かれています。私はそれが何を意味するのか理解できません。
同様の投稿を見つけましたInvalidDeploymentException - Application identity is not set but there is no answer to this question.
c# - VS2010は、静的コンストラクター例外でデバッグを中断しませんでした
Editor
単一のクラス(から継承する)を持つWindowsフォームアプリケーションがありますForm
。
デザイナーが生成したコードを除いて、これはフォームの唯一のコードです(1つのコンボボックス()のみが含まれていますcmbConnections
)。
このConnectionManager
クラスは、静的コンストラクターを持つ静的クラスです。コンストラクターは初期化を行い、重大な状態をテストします。条件が満たされた場合、コンストラクターは例外をスローします。ただし、この例外はVisual Studio 2010のデバッグモードでは発生しません。これをテストするためthrow new Exception()
に、ConnectionManager
の静的コンストラクターのみを配置しました。が使用されるため、イベントハンドラーConnectionManager
で(初めて)初期化されます。Editor_Load
静的コンストラクターが呼び出され、例外がスローされます(出力ウィンドウにのみ表示されます)。残りのEditor_Load
イベントハンドラー(cmbConnections.Visible = false;
)は、期待どおりに実行されません。
しかし、私が理解していないのは、なぜ私のVS2010が例外を飲み込んだのかということです。デバッグは中断されませんでした。try/catchブロックで囲まれていません。メインウィンドウでプログラム実行を続けました。まるでEditor_Load
別のスレッドで実行されたかのようです。
出力ウィンドウにメッセージが表示されます。
Editor.exeで「System.InvalidOperationException」タイプの最初のチャンスの例外が発生しました
Editor.exeでタイプ'System.TypeInitializationException'の最初のチャンスの例外が発生しました
しかし、デバッグモードでは実行が中断されませんでした。
この動作に影響を与える可能性があると私が信じているオプションのいくつかを次に示します。
プロジェクトのプロパティ->ビルド->一般->コードの最適化はチェックされていません。
[ツール]->[オプション]->[デバッグ]->[一般]->[自分のコードだけを有効にする]がオンになっています。
例外設定では、「user-unhandled」のチェックボックスがチェックされています。
私は何かが足りないのですか?この動作は正常ですか?VS2010は未処理の例外をスローすると思いました。そして、ここではこれは処理されておらず、まだ壊れていません。
exception - 拡張プロパティへの powershell 呼び出しがサイレント モードで失敗する ( Update-TypeData を介して追加)
私の質問は次のとおりです。
- このエラーがコードにスローされないのはなぜですか?
- エラーをコードにスローするにはどうすればよいですか?
どこで/どうすれば自分でこれを理解できたでしょうか? / この「機能」のドキュメントはどこにありますか?
/li>