So the author's example:
lastNumber := person office phone lastNumberDialed asString.
Could maybe look something like lastNumber := person? office? phone? lastNumberDialed? asString.
Now you have neither "message eating" nor "exception throwing" nil. And the programmer is in control of what happens if other behavior is desired.