AOL: Stray Tortoiseshell Cat Introducing Her Kittens To the Woman Who Feeds Her Couldn't Be Sweeter Stray Tortoiseshell Cat Introducing Her Kittens To the Woman Who Feeds Her Couldn't Be Sweeter try { WebId = new Guid(queryString["web"]); } catch (FormatException) { WebId = Guid.Empty; } catch (OverflowException) { WebId = Guid.Empty; } Is there a way to catch both exceptions and only set WebId = Guid.Empty once? The given example is rather simple, as it's only a GUID, but imagine code where you modify an object multiple times, and if one of the manipulations fails as expected, you ... I think that this only works if you raise and then catch the exception, but not if you try getting the traceback before raising an exception object that you create, which you might want to do in some designs.

Understanding the Context

If you re-throw an exception within the catch block, and that exception is caught inside of another catch block, everything executes according to the documentation. When is finally run if you throw an exception from the catch block? Note that most crashes are not caused by exceptions in C++. You can catch all exceptions, but that won't prevent many crashes.

Key Insights

Are there situations where it is appropriate to use a try-finally block without a catch block?