Adesso non ho capisco a quale domanda mi hai risposto

quindi cerco di chiarire quest'ultimo dubbio

Nel metodo principale, grazie al throw presente nel metodo chiamato, riesco a ricevere l'errore (effettivamente scatenato e non quello indicato tra apici "L'oggetto...") indipendentemente da cosa ritorna il metodo chiamato (bool, void...) ?? se la risposta fosse affermativa, potrei salvare nel log l'errore direttamente da metodo principale. (dato che riesco a recuperarlo)

Ma allora a cosa serve questo messaggio ("L'oggetto non e' valido")???

Se il throw ritorna al metodo chiamante l'errore effettivamente generato, dove viene visualizzato il messaggio "L'oggetto non è valido".

Grazie