Stefan said:
»may likely« is a little bit too vague for my taste.
I don't have a problem with any vaguery, I have a problem with its
correctness. I suggested in a follow-up post to my own post that "can
possibly" might be better than "may likely".
Possibly, an example, would help?
Sure, OK. Consider that not every error, though still an error, will not
necessarily lead to failure. For example:
A top fuel funny car engine may eject its magneto (OK, back in the day
when they only had one) through the carbon fiber body (OK, maybe
fiberglass back then) into the high heavens (ah, night time drag
racing... quite a spectacle... and everyone knows that heaven is absent
during the day) at the starting line upon car launch because the retainer
used was made from forged aluminum alloy instead of titanium, but the car
may still reach the finish line with nary a dent in it's average elapsed
time on the quarter mile because the highly volatile nitro fuel ignites
in the combustion chambers of the engine even without the aid of the
ignition system because the engine behaved like a compression-ignition
engine (think diesel) over the 1/4 mile trek.
System: Top fuel funny car.
Error: Missing magneto!
Failure: None.
(The specification (specified behavior) says the car must reach the
finish line under 4.5 seconds (OK, 7 seconds back then), but nothing
about having to arrive with all components it started with, so the
magneto ejection cannot be taken as a failure in and of itself).
System: Keith Black Hemi funny car engine.
Error: Aluminum instead of titanium magneto retainer.
Failure: Ejected magneto.
When an error is a part of the system (run-time) state,
there cannot be errors in the source code, because the
source code is not part of the system state?
All source code DEFECTS are erradicated during debugging and testing.
(LOL!). There is no way to deal with software defects ("bugs") other than
to fix them* so it behooves to have a very, very comprehensive way to
flush-out all the defects. Exceptions can't help with bugs, other than to
help weed them out during development/testing (if one uses exceptions
thusly) along with assertions. So, it is easy to see that one cannot hope
for much given a defective program to beging with: ANYTHING can happen!
*Of course that is not true absolutely, but within the context of a
single unmonitored program it is.