Operationally, these runtime errors become our equivalent of compiler errors.
They are actually better than compiler errors, because they can be way stricter and more useful than the sort of errors that a compiler is capable of generating.