C# .NET Framework 4.0 ライブラリを開発しています。
私はこのコードを持っています:
public static byte GetBatchStatus(string connString)
{
if (string.IsNullOrEmpty(connString))
throw new ArgumentNullException("connString");
byte status;
using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = GetBatchStatusValueSQL;
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
object o = cmd.ExecuteScalar();
// Throws an ArgumentNullException if o is null.
if (o == null)
throw new ArgumentNullException("o");
status = Convert.ToByte(o);
}
return status;
}
cmd.ExecuteScalar();
null を返すこともできますが、Convert.ToByte(o);
0 を返します。
cmd.ExecuteScalar();
探している値はデータベース上にある必要があるため、 null を返す場合はエラーです。その値がデータベースにない場合はエラーです。
ここで何をしますか?null を返すか、例外をスローしますか?