問題タブ [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.
exception - C++ で例外的なエラーを移植可能に処理する
Visual C++ アプリケーションを GCC に移植する作業を行っています (MingW と Linux でビルドする必要があります)。
既存のコードは__try { ... } __except(1) { ... }
、いくつかの場所でブロックを使用しているため、最小限のログを実行せずにプログラムを終了させるものはほとんどありません (おそらくメモリ不足タイプのエラーを除いて?)。
GCCで同様のことを行うためのオプションは何ですか?
編集:Visual Studio の /EH オプションへのポインタをありがとう。今必要なのは、Linux でシグナルを処理する方法の例です。2002年からこのメッセージを見つけました。
他にどのようなシグナルSIGFPE
があり、SIGSEVG
注意する必要がありますか? (主に、私が何か間違ったことをしているときに発生する可能性のあるものを気にします)
報奨金情報: アプリケーションが終了する前に、できるだけ多くのエラー状態を自己ログできるようにしたいと考えています。
どのようなシグナルを受け取る可能性があり、エラーメッセージをログに記録することが一般的に不可能なシグナルはどれですか? (メモリ不足、他に何?)
Linux と MingW でコードが少なくとも同じように動作する移植可能な方法で、例外と (最も重要な) シグナルを処理するにはどうすればよいでしょうか。#ifdef でOKです。
失敗をログに記録するラッパー プロセスがない理由は、パフォーマンス上の理由から、ディスクへのデータの書き込みを最後の最後まで保存しておくためです。終了します。
database - データベース例外処理のベスト プラクティス
アプリケーションでデータベースの例外をどのように処理しますか?
データを DB に渡す前に検証しようとしていますか、それとも単に DB スキーマの検証ロジックに依存していますか?
ある種の DB エラー (タイムアウトなど) から回復しようとしていますか?
いくつかのアプローチを次に示します。
- DB に渡す前にデータを検証する
- 検証を DB に任せ、DB 例外を適切に処理する
- 両側で検証する
- ビジネス ロジックのいくつかの明白な制約を検証し、複雑な検証を DB に任せる
どのようなアプローチを使用しますか? なんで?
アップデート:
議論が盛り上がって嬉しいです。
コミュニティの回答をまとめてみましょう。
提案:
- 両側で検証する
- クライアント側でビジネス ロジックの制約を確認し、DB にhamishmcn からの整合性チェックを行わせる
- ajmastrean からのDB に迷惑をかけないように、早めにチェックしてください
- 早期に確認して、Will のユーザー エクスペリエンスを向上させましょう
- hamishmcn からの開発を簡素化するために、DB と対話するコードを配置しておきます
- オブジェクト リレーショナル マッピング (NHibernate、Linq など) は、ajmastrean からの制約に対処するのに役立ちます
- Seb Nilsson からのセキュリティ上の理由から、クライアント側の検証が必要です
他に何か言いたいことはありますか?これは検証固有の質問に変換されます。「データベース関連のエラーのベスト プラクティス」の核となる部分がありません。どのエラーを処理し、どのエラーをバブルアップするか?
debugging - 空の catch ブロックでの例外のデバッグ
空の catch ブロックが大量に発生する本番アプリケーションをデバッグしています:
デバッガーが IDE でキャッチにヒットしたときの例外を確認する方法はありますか?
.net - Web サービスの例外
私のグループはサービス ベース (.NET WCF) アプリケーションを開発しており、内部サービスで例外を処理する方法を決定しようとしています。例外をスローする必要がありますか? XML としてシリアル化された例外を返しますか? エラーコードを返すだけですか?
ユーザーがこれらの例外を目にすることは決してないことに注意してください。これは、アプリケーションの他の部分のためだけのものです。
c# - ジェネリック メソッドに FAIL で特定の例外タイプをスローするように要求する
そうですね、私はこれで完全にばかに見えることを知っていますが、私の脳は今朝ギアを上げていません.
「ダメならこういう例外で返して」って言えるメソッドが欲しいですよね?
たとえば、(そしてこれは機能しません)のようなもの:
ここで私を混乱させているのは、ジェネリック型が where句のために例外型になることを知っていることです。ただし、 ExceptionをExTypeに暗黙的にキャストできないため、コードは失敗します。次のように明示的に変換することもできません。
それも失敗するので..では、このようなことは可能ですか?私はそれが本当のシンプルになるだろうという強い気持ちを持っていますが、私は古いノギンで厳しい一日を過ごしているので、少し余裕を持ってください:P
アップデート
回答してくれてありがとう、どうやら私は完全な馬鹿ではなかったようです! ;)
OK、VegardとSamは、正しい型をインスタンス化できるところまで私を連れて行ってくれましたが、インスタンス化後にメッセージパラメータが読み取り専用であるため、明らかに行き詰まりました。
マットは彼の反応で頭に釘を打ちました。私はこれをテストしましたが、すべて正常に動作します. コード例は次のとおりです。
甘い!:)
みんなありがとう!
c++ - C++での例外処理のオーバーヘッドの測定
C ++で例外処理のオーバーヘッド/パフォーマンスを測定するための最良の方法は何ですか?
スタンドアロンのコードサンプルを提供してください。
Microsoft Visual C++2008とgccをターゲットにしています。
次の場合から結果を得る必要があります。
- try/catchブロックがない場合のオーバーヘッド
- try / catchブロックがあるが、例外がスローされない場合のオーバーヘッド
- 例外がスローされたときのオーバーヘッド
c# - 特定のスレッドで例外をスローするためのC#の良い方法はありますか
書きたいコードはこんな感じです。
スレッド A によってフラグが設定されているかどうかを確認するために、スレッド セーフな方法でスレッド B を定期的にチェックできることはわかっていますが、それではコードがより複雑になります。私が使用できるより良いメカニズムはありますか?
定期的なチェックのより具体的な例を次に示します。
vb.net - メニューストリップ エラー
VB.NET 3.5 でビルドされた Windows フォーム アプリケーションを使用すると、断続的なエラーが発生します。どうやら、フォームをクリックしてフォームを再描画すると、MenuStrip コントロールに赤い「X」が描画され、次のエラーでアプリがクラッシュします。
誰もこれを見たことがありますか?誰かが私を正しい方向に向けることができますか?
java - Java の finally ブロックから戻る
最近、Java の finally ブロックに return ステートメントを含めることができることに驚きました。
「 finally 句で返さない」で説明されているように、多くの人が悪いことだと考えているようです。もう少し掘り下げてみると、「Java's return does not always」も見つかりました。これは、finally ブロックでの他のタイプのフロー制御の非常に恐ろしい例を示しています。
それで、私の質問は、finally ブロックの return ステートメント (または他のフロー制御) がより優れた/より読みやすいコードを生成する例を誰か教えてもらえますか?
c# - FaultException を処理できません
操作を行う wcf サービスがあります。この操作でエラーが発生する可能性があります。サービス契約に誤りがある可能性があると述べました。
以下のコードは次のとおりです。
サービス契約で;
アプリケーションの実行中に DoSomething() メソッドによって FaultException がスローされた場合、最初に「catch(Exception ex)」行で例外がキャッチされ、そこで中断されました。次に、もう一度 f5 を押すと、通常どおりに実行されます。なぜその休憩が存在するのだろうか?そうでない場合は、公開時に問題になる可能性がありますか?