6 ms·
But sometimes you must act on exceptional situations, recover, take alternative route, provide default, or translate exception from lower level one to a higher
by middayc 2mo ago
But sometimes you must act on exceptional situations, recover, take alternative route, provide default, or translate exception from lower level one to a higher level one. From cause based to more intent based. Err, file not found setup.txt -> Couldn't read your setup -> ...
Which its great if this also doesn't loose lower level information, but just wraps it, so end user could dig into the error.
- mike_hock 2mo ago> But sometimes you must act on exceptional situations, recover, take alternative route, provide default And then the Rye version is presumably just as verbose. > or translate exception from lower level one to a higher level one This is the actual flaw in exception-based languages. Adding context should be much more convenient.
- middayc 2mo agoThen the rye code "needs more meat" too yes, but not that much changes, |fix { code } already does the fixing and provides an alternative, |^check { failure construct dialect }, already wraps received failure into a new one you construct, and exits to caller. There are other such functions but these two are most common. Additional benefit I see, they already express intent. Like map, filter, reduce express intent better than foreach loop.