Hi,
Thanks for the input.
I don't really need this capability in the language, however, I do think
that it will simplify my code. I do not think the need to use it is a design
issue either.
If you take a look of the following 2 methods:
1. MyFunction_A() is the original code and MyFunction_B() "untilizes" the
ability to know whether the execution is in "unhandled" state. Of course,
this ability does not exist.
2. CleanUp() is called if the
a. animal is a monkey
b. when exception is not handled, or will be rethrown.
public void MyFunction_A()
{
...
try
{
...
if (typeOfAnimal == Animal.Monkey)
{
CleanUp();
}
}
catch (JobUtils.AutomationException ex)
{
CleanUp();
throw (ex);
}
catch (Exception ex)
{
CleanUp();
throw (ex);
}
return;
}
public void MyFunction_B()
{
...
try
{
...
}
catch (JobUtils.AutomationException ex)
{
throw (ex);
}
catch (Exception ex)
{
throw (ex);
}
finally
{
if (typeOfAnimal == Animal.Monkey || <Unhandled exception state>)
{
CleanUp();
}
}
return;
}

Signature
George
> As was mentioned before, you shouldn't need to write code to find out
> what's about to happen when you leave finally. Finally is for code that
> should happen no matter what, such as destroying objects and
> Datareaders that, no matter what you're doing next, you don't need and
> want garbage collection to clear from memory.
Jeffrey Tan[MSFT] - 23 Aug 2006 10:59 GMT
Hi George,
Thanks for your feedback!
Yes, I understand your concern. As I think, providing the information of
whether current code is coming from an exception or normal execution path
at language level is useful . I am not sure why this feature is not
provided in C# language. I will help you to consult it in our C# team.
Currently, I think the simplest solution to this problem is using bool
flags in all the possible execution paths. Below code snippet demonstrates
this:
private void method()
{
bool fNormal=false, fCatch=false, fUnhandled=false;
try
{
...
fNormal=true; //just before exiting the try clause
}
catch(Specific Exception)
{
fCatch=true;
...
}
finally
{
if(fNormal)
{
...
}
else if(fCatch)
{
}
else
{
fUnhandled=true;
}
}
}
Does this meet your need? If I misunderstand you, please feel free to tell
me, thanks.
Best regards,
Jeffrey Tan
Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
Jeffrey Tan[MSFT] - 24 Aug 2006 03:05 GMT
Hi George,
Sorry for letting you wait.
After discussing internally, I was told that since few developers require
this feature, so the system is not burdened with setting up flags which
rarely are used. I think the bool flag workaround is the suitable for your
scenario. Does it meet your need? Please feel free to tell me, thanks.
Best regards,
Jeffrey Tan
Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.