I had to wing this one yesterday. 9U travel game, and team with only 9 players are just throwing their bats after they hit the ball. I tell several players to watch it. It keeps happening. One boy gets a hit, throws the bat that hits the catcher. I give an official warning. Between innings I tell coach of that team that since they only have 9 players, I am not going to eject anyone next time a bat is thrown (even though I know that is the rule), but I will call the batter out if it hits the catcher or me. I did not want to get into a situation where I eject players and that team has no replacements; I want the game to actually be played. Coach agrees. Of course, what happens next inning is that with two runners on base, the batter wallops one, throws the bat that hits the catcher, my arms go up immediately, and a few seconds later ball goes over the wall for a HR. However, I call the batter out and put the two runners back on base. Coach goes berserk, says it was a HR so I cannot do that (I guess I could call him out only if he was out to begin with (LOL)), calls me an asshole, and I eject the coach. Asst coach who takes over talks to me and tells me "look, as long as you had told him what you would do, you get no argument from me". Next time that batter comes up, he gets a hit, and promptly drops the bat safely. There was another time a batter on that team throws the bat which nails the catcher in his arms and chest. I call him out and no one complains (that team won by a mercy anyway).
I know that what I did was not strictly by the rules, but I had weight whether I wanted the boys to actually play the game, or have it suspended or forfeited because players were being ejected. Rightly or wrongly, I made a decision that I felt was warranted for the situation. I would never have made that decision for a HS game, however!