6

デバッグ中にデザイナーにエラーをキャッチしてもらい、エラーが発生した場合にユーザーにわかりやすいメッセージを表示してもらいたい. 私はこれを次のように達成できることを知っています:

#If Debug=False Then

Try

#End If

'some code here

#If Debug=False Then

Catch ex as exception

    Messagebox.Show("Errors suck")

End Try

#End If

すべての #statements を記述してコードを乱雑にする必要はありません。これは共通のニーズであるように思われ、より良い方法が必要です。誰かがより良い方法を知っていますか?

4

4 に答える 4

16

VS.NET では、 (未処理のときだけでなく)例外がスローされたときにデバッガーを中断するかどうかを指定できます。

デバッグを見て | Exceptions... メニュー項目 (キーボード ショートカットの Ctl-Alt-E)。関心のある例外を選択し、その例外の「スロー」ボックスにチェックマークを付けます。

そのボックスにいくつかのレベル (すべての CLR 例外、特定の名前空間内のすべての CLR 例外、または特定の例外) でチェックを入れることができます。

于 2009-05-21T14:45:08.340 に答える
3

あなたが行ったこと以外に、try catch を無視させる良い方法はありません。しかし、コードを少しきれいにすることで、本質的に同じ効果を得ることができます。基本的に、catch ブロックのアクションが実行されないようにしようとしています。これを行うためのより良い方法は、条件付きでコンパイルされたメソッドです。

Try
... 
Catch ex As Exception
  DebugLog(ex)
  Throw
End Try

<Condition("DEBUG)> _
Public Sub DebugLog(ByVal ex As Exception) 
  Messagebox.Show("errors suck")
End Sub
于 2009-05-21T14:46:17.513 に答える
0

Try..Catch の catch セクションでは、例外メッセージ、スタック トレース、およびログ ファイルに必要なその他すべてを書き込む必要があります。さらに、そのデータを Windows イベント ログにも書き込むことができます。

最悪の場合、Try..Catch ブロックの Catch セクションにブレークポイントを配置することもできます。これは、通常はブレークポイントをヒットするべきではないため、一度設定すると大したことにはなりません。

于 2009-05-21T14:44:52.087 に答える