As a developer, you can simulate the trading function call with the tokens you wish to trade to see if the transaction can be completed as is, or if there are unexpected issues. If the trade can't be completed it returns an error indicating the issue, such as un-supported tokens, permissions, etc, and includes a clear way to resolve them.