Functional Programming, Csharp, Programming.
a) it does affect the scope of the caller code. The execution flow will be interrupted and passed above to the first corresponding catch block b) the exception is indeed unexpected. Maybe not for you, since you know C#, since you know math, since this example is simple. However, nothing from the