Вот пример следующего кода:
try
{
arParam[0] = new SqlParameter("@CdID", SqlDbType.Int, 4);
arParam[0].Value = cdID;
reader = SqlHelper.ExecuteReader(Util.Config.ConnectionString, CommandType.Text, sqlCmd, arParam);
if(reader.Read())
{
.
.
.
}
else
{
throw new NullResException();
}
}
catch(Exception ex)
{
throw new DALException(ex);
}
проблема в том, что после генерации исключения NullResException его тут же обрабатвает блок catch. а мне этого не надо. уточнить тип исключения в catch'е возможности нет. решил проблему вот таким образом:
try
{
arParam[0] = new SqlParameter("@CdID", SqlDbType.Int, 4);
arParam[0].Value = cdID;
reader = SqlHelper.ExecuteReader(Util.Config.ConnectionString, CommandType.Text, sqlCmd, arParam);
if(reader.Read())
{
.
.
.
}
else
{
throw new NullResException();
}
}
catch(Exception ex)
{
if(ex is NullResException)
{
throw new NullResException();
}
else
{
throw new DALException(ex);
}
}
но почему-то мне кажется, что есть более элегантное решение. может кто-нибудь знает альтернативу тому, что сделал я? буду очень благодарен