I don't like this syntax very much. The one suggested in the message you commented is nice except that I would write it like this rather:
try { Stdio.format_filesystem("/dev/hda2", "ext5"); } catch (Exception e) { case e->invalid_file_system_type: // invalid file system type break; case e->no_permission; case e->not_mounted: // no permission or filesystem mounted break; }
/ David Hedbor
Previous text:
2003-10-01 20:23: Subject: Re: throw or return
If we make exceptions as expressful as Al suggests, then we would probably want normal if-expressions somehow.
keyword(Exception e) { Stdio.format_filesystem("/dev/hda2", "ext5"); } if(e->something==17 && sizeof(seamingly_unrelated)==3) { //handle this } else if(e->really_bad==1) { //handle that } else { //don't throw unknown exceptions }
I don't like this particular example though, since the if-statements are outside of the traditional range of the e variable.
/ Martin Nilsson (saturator)