以下のコードを書きました。
if (hoge < 0 || 100 < hoge)
{
throw new ArgumentOutOfRangeException("hogeが範囲外です。");
}
コード分析にかけると次のような警告を出してきました。
ArgumentOutOfRangeExceptionコンストラクタのstringを1つもらうパターンはmessageではなくパラメータ引数(paramName)を受け取ることに気づきました。
以前、innerExceptionをコンストラクト時に渡せない例外クラスに遭遇しました(コンパイルエラーによって気付く)が、こういうこともあるんですね。
ちなみにIndexOutOfRangeExceptionの同パターンはmessageを受け取ります。(リンク: IndexOutOfRangeException コンストラクタ (String))