А как правильно передать вызывающему коду то что внутри что то пошло не так, например есть юзер и у него есть баланс и он через интерфейс пытается снять деньги и вводит количество которое превышает его баланс и в методе withdraw соответственно не получится снять количество которого нету, что тогда делать, вызывать исключение и перехватывать в вызывающем коде или делать так что бы метод возвращал какой то объект успешности операции, получилось ли снять или нет?