編集:cyberkiwiは私がやったより良い質問を把握し、私はそれが読書のように悪い例を立たせていただきます。)
あなたはいつも自分の例外クラスを定義することができます
[Serializable()]
public class OwnException : System.Exception
{
public readonly MaybeDateTime;
...
public OwnException (string message, System.Exception inner) : base(message, inner) { maybe = null; }
public OwnException (string message, System.Exception inner, DateTime maybe) : base(message, inner) { MaybeDateTime = maybe; }
}
を
を投げてください(日時を割り当ててください)。
DateTime datetime -declarationをtry-catch-blockの外に転送する必要があります。この例では、SLaksは正しい:それは意味をなさないでしょう。 datetimeは、return-Statementがキャッチされた例外をスローする場合にのみ意味のあるものを保持できます。他の場合には、有用な用途があるかもしれない。
編集:同じことが文字列で行うことはできますが、現在の時刻を返すと状況を良い方法で解決した場合は、これを例外として再現することはやや馬鹿になります。上記のとおり、正しく読まなかった。
を呼び出していません質問 – RichardTheKiwi
に記載されている戻り値(try code path)戻り値を使用する必要がない場合は、それを返しますか?ただ例外を再スローします。本当に必要な場合は、2つの引数、実際の例外と望ましい戻り値を持つ独自のラッパー例外を作成することができますが、それは恐ろしいです。 –
@Michael - コメントを再読します。私は、もし失敗した場合には、 'try部からの戻り値 'を使う必要がないことを意味しました。私はその質問を「日付を構成するにはパラメータが無効な場合」 - > datetime.nowを返す代わりに「エラー部分を再投げていることは、その動作の誤解に起因するものではないと思っています – RichardTheKiwi