質問: "strTime1はstrTime2より後の日時です"; break; } } } }
回答: 今回の問題は他の回答者の方が言われているようにスコープを意識してないからですね。 今回の問題とは関係ない余計なお世話かもしれませんが、例外処理に関して気になることを一言・・・(こういうコードを見ると黙ってられないのですみません) とにかくまず Exception をキャッチするのは止めた方がいいです。その他例外処置について、自分的に一般的と思うことを書きます。 (1) 予測可能で正しい業務フローに戻すことができる「業務エラー」(例:ユーザーの入力間違い)と、予測できないもしくは予測はできても何の対応もできない「例外」(例:DB サーバーダウン)を区別して対処。 (2) 「例外」はランタイムに拾わせてアプリケーションを停止させる。 (3) よほどのことがない限り try-catch は書かない。 (4) キャッチせざるを得ない場合でも Execption はキャッチしない。 (5) 間違って補足してしまった例外は throw する。(注:catch ブロックでキャッチした例外を throw するとスタックトレースが途切れるので単に throw と書く) (6) ユーザーへの通知が必要なら、集約的例外処置を利用する。 詳しくは以下の記事を見てください。 NETの例外処理 Part.1 .NETの例外処理 Part.2 あと、.NET 4 からは破損状態例外は catch できなくなっているそうですが、「それでも Catch (Exception e) を使用するのはよくない」ということについては以下の記事を見てください。 破損状態例外を処理する