MultipleWinners - Inconsistent behavior compared to SingleRandomWinner
The `MultipleWinners` strategy carries out award distribution to the zero address if `ticket.draw()` returns `address(0)` (indicating an error condition) while `SingleRandomWinner` does not.\\n`SingleRandomWinner` silently skips award distribution if `ticket.draw()` returns `address(0)`.\\n```\\ncontract SingleRandomWinner is PeriodicPrizeStrategy {\\n  function \\_distribute(uint256 randomNumber) internal override {\\n    uint256 prize = prizePool.captureAwardBalance();\\n    address winner = ticket.draw(randomNumber);\\n    if (winner != address(0)) {\\n      \\_awardTickets(winner, prize);\\n      \\_awardAllExternalTokens(winner);\\n    }\\n  }\\n}\\n```\\n\\n`MultipleWinners` still attempts to distribute awards if `ticket.draw()` returns `address(0)`. This may or may not succeed depending on the implementation of the tokens included in the `externalErc20s` and `externalErc721s` linked lists.\\n```\\nfunction \\_distribute(uint256 randomNumber) internal override {\\n  uint256 prize = prizePool.captureAwardBalance();\\n\\n  // main winner gets all external tokens\\n  address mainWinner = ticket.draw(randomNumber);\\n  \\_awardAllExternalTokens(mainWinner);\\n\\n  address[] memory winners = new address[](\\_\\_numberOfWinners);\\n  winners[0] = mainWinner;\\n```\\n
Implement consistent behavior. Avoid hiding error conditions and consider throwing an exception instead.
```\\ncontract SingleRandomWinner is PeriodicPrizeStrategy {\\n  function \\_distribute(uint256 randomNumber) internal override {\\n    uint256 prize = prizePool.captureAwardBalance();\\n    address winner = ticket.draw(randomNumber);\\n    if (winner != address(0)) {\\n      \\_awardTickets(winner, prize);\\n      \\_awardAllExternalTokens(winner);\\n    }\\n  }\\n}\\n```\\n