Given an onion architecture, what are the advantages and disadvantages of throwing exceptions in the business logic (which is in the center of the onion) for invalid parameters provided by the user?
The alternative would be error codes.
I do have arguments for both approaches, exceptions vs. error codes, however I find it hard to decide.