Actually, there are only finite ways to fail. It just happens to be a large number. Thinking of interactions of the world as propagations of signals and considering Kolmogorov-style descriptions of entropy would lead one to this conclusion of finiteness. See: "Kolmogorov complexity"
Further, there are a finite number of patterns of failure, which is of course less than the number of absolute ways things could fail.
The biggest detriment is not that things can fail, but that people get overwhelmed by believing that such things are infinite in scale.
As an example, there are only 16 categorical manifestations of software exceptions based on the following categories:
- Synchronicity, Scope, Origin
For Synchronicity we have:
- Synchronicity
- Asynchronicity
For Scope we have:
- Process-specific
- Cross-process
For Origin we have:
- Data origin
- Temporal origin
- External origin
- Process origin
Then you combine them such as "Synchronous-CrossProcess-Temporal Origin." The total is 16 ways. Even if something were somehow to be missing from this categorization scheme, it would only add a finite amount of possibilities to the permutations. Yet this taxonomy seems quite complete as is.
See: “Error Handling in Process Support Systems” by Casati & Cugola.
Further, there are a finite number of patterns of failure, which is of course less than the number of absolute ways things could fail.
The biggest detriment is not that things can fail, but that people get overwhelmed by believing that such things are infinite in scale.