When faced with this kind of decision, one where throwing an Exception is a possible choice, think to yourself, "is this an exceptional state?" That is, during any sort of normal running of the program could this ever occur unless there's a programming bug, a hicup in some dependent service, or perhaps, bad user input that wasn't dealt with properly? Could this state be dealt with right here and now in this method or do we need to shrug our shoulders and pass the error back up the calling chain to be dealt with? Should execution continue on or is the state such that continuing would cause further problems?
If you look at your null Order problem against these questions it should be somewhat obvious as to your course of action.