Based on comments above
Your function is triggered by message in service bus. You process the message. If you are happy and done in the given execution time (5 mins default) then message is marked as completed. If you are not happy , throw the exception. The function will consider message not completed and abandon it so it re-appears in the queue , however you retry count will keep on growing until it reaches the max value after which message is sent to dead letter queue.
Couple of points to note
If you don't throw the exception and process does it itself (due to some processing error) it still considers it abandoned message and will retry . However if function executes successfully without throwing any error but result is not what you want then throw ex your self.
Also in services bus increase the lock time to match the processing time of your function. e.g. function takes 5 mins to complete , but your message lock time in your services bus is 30 secs , the message will reappear in message queue while the other copy of message is still being processed by function. So increase your services bus message lock time that you consider is sufficient for function to complete the process.