XML ドキュメントを使用したサンプル メソッド:
// summary and param tags are here when you're not looking.
/// <exception cref="ArgumentNullException>
/// <paramref name="text" /> is null.
/// </exception>
public void Write(string text)
{
if (text == null)
throw new ArgumentNullException("text", "Text must not be null.");
// sync stuff...
}
Write(null)
期待どおりに例外をスローします。以下は非同期メソッドです。
public async Task WriteAsync(string text)
{
if (text == null)
throw new ArgumentNullException("text", "Text must not be null.");
// async stuff...
}
WriteAsync(null)
、待機するまで例外をスローしません。とにかくタグで指定する必要がありますArgumentNullException
か?消費者は、呼び出しがスローされ、次のように記述される可能性がexception
あると考えるようになると思います。WriteAsync
ArgumentNullException
Task t;
try
{
t = foo.WriteAsync(text);
}
catch (ArgumentNullException)
{
// handling stuff.
}
非同期メソッドの例外を文書化するためのベスト プラクティスは何ですか?