shalabh
04/20/2019, 7:45 PMKartik Agaram
Kartik Agaram
Kartik Agaram
How can we program systems which behave in a reasonable manner in the presence of software errors?This begs the question of what an error is. The introductory chapters bounce between the terms ‘error’ and ‘fault’ or ‘failure’, which felt initially like a weakness of the exposition. I felt like I understood what was meant by ‘fault’ and ‘failure’ — the program crashes. So it felt overblown to generalize from crashes to all errors. But it all makes sense when I skip ahead to section 4.4, which defines ‘error’ like this:
An error occurs when the programmer doesn’t know what to do.And the suggested response is the section title:
Let the process crash.Concurrency provides the promise of turning all unanticipated situations into crashes. As long as the platform is equipped to detect and respond to crashes, this turns a hard problem into an easier one.