What do you mean? For me "mutable states" are stuff like loop indices. May you develop? | [reply] |
From the articles...
Every time you call a function that can raise an exception and don't catch it on the spot, you create opportunities for surprise bugs caused by functions that terminated abruptly, leaving data in an inconsistent state, or other code paths that you didn't think about.
...and...
NotifyIcon CreateNotifyIcon()
{
NotifyIcon icon = new NotifyIcon();
icon.Text = "Blah blah blah";
icon.Visible = true;
icon.Icon = new Icon(GetType(), "cool.ico");
return icon;
}
Here's what it might look like after you fix it to be correct in the face of exceptions:
NotifyIcon CreateNotifyIcon()
{
NotifyIcon icon = new NotifyIcon();
icon.Text = "Blah blah blah";
icon.Icon = new Icon(GetType(), "cool.ico");
icon.Visible = true;
return icon;
}
Note that the errors arise when the exception disrupts the sequencing of side effects. No side-effects (like state), no problems.
| [reply] [d/l] [select] |
Note that the errors arise when the exception disrupts the sequencing of side effects. No side-effects (like state), no problems.
All right. But AFAIK only pure functional programming avoids side-effects, isn't it? ;) How reimplementing the exemple above with no side-effects (in Perl, Java, Python, C++...) is beyond me.
| [reply] |