Hello everyone,
This has been nagging me for quite some time now, perhaps you can
enlighten me on this.
You see I have a function that returns either true or false. But what
will happen if underneath
this function, there's a call that would raise an exception?
public bool runQueryEx(String AQueryString)
{
bool IsQueryRunOK = false;
using (OleDbCommand cmd = new OleDbCommand(AQueryString,
oleconn))
{
cmd.CommandType = CommandType.Text;
try
{
cmd.ExecuteNonQuery();
IsQueryRunOK = true;
}
catch (System.InvalidOperationException)
{
//MessageBox.Show(ioe.Message, "Error",
// MessageBoxButtons.OK, MessageBoxIcon.Error);
throw;
}
catch (System.Exception)
{
//MessageBox.Show(e.Message, "Error",
// MessageBoxButtons.OK, MessageBoxIcon.Error);
throw;
}
}
return IsQueryRunOK; // will it return false in case
of exception ?
}
When debugging, I noticed that the last line:
return IsQueryRunOK;
seems to get skipped *whenever* there's an exception. Is this normal?
Is it implied
that since it's a function it should return a value? Or just to be
safe (and for peace of mind), should I use a finally block? What
would you recommend?
Benj