Let's dig deep on this one because it's a great example of where punishment gets in the way of helping kids WANT to cooperate.
Is moving the truck out of reach a reasonable limit? Of course. But by itself, it will certainly be perceived as punishment. So it is just the beginning of your intervention, and not the most important part. In fact, it might not even be necessary.
If your child started throwing shoes out the window, you would move the shoes out of his reach until he calmed down. But you wouldn't just move the shoes, you would address the reason he was throwing them, which means you would help him solve the problem that was leading to the behavior. And you wouldn't keep the shoes out of reach for some arbitrary period of time, or that would be a punishment. You would give him access to his shoes as soon as he had calmed down and could resist throwing them.
This is no different. In fact, since there is only one truck and it's already across the room, you might be able to avoid putting the truck out of reach altogether, by intervening immediately to address the underlying feelings. That way you aren't even perceived as giving a punishment, which will always lead to more misbehavior. After all, when kids feels punished, they feel worse and act worse.
Let's assume for the moment that the cat beats a hasty retreat when she sees your son coming and didn't actually get hurt by the UFO that flew by. Thank goodness! And your son doesn't seem angry, just excited. He already knows that throwing toys at the cat is not okay. So your goal now is to help him see that when he feels like throwing, there is an alternative.
You say "You feel like throwing! Trucks aren't for throwing. They could hurt someone. See how it scared the cat? When you want to throw, say "Mom, let's throw!" We will find a safe place to throw balls outside (or stuffed animals into the bath tub)."
- You're definitely enforcing the limit that trucks aren't for throwing but you aren't making him feel like a bad kid for throwing.
- You're reconnecting with him, which increases your influence with him. (And one common reason for a child to hurl a toy is because they feel disconnected; they want the parent to notice them.)
- You're meeting his need to throw, and you're teaching him to safely redirect it.
- You're addressing the underlying feelings that drove him to throw, even if it was just an exuberant "What would it feel like to throw this?!"
However, let's say your son threw the truck in anger. He's trying to show you something important about how he feels. So moving the truck out of range won't help. It just makes it more likely that he will escalate. You'll need to help him with whatever emotions made him resort to violence.
And if he makes a habit of launching missiles at the cat, or if the truck actually hit the cat as she was happily basking in the sun, you certainly want him to understand his effect on the cat. "Ouch, poor Kitty! That truck hurt! Look how scared she is. Trucks aren't for throwing. Kitty is scared right now, so let's leave her alone, but later you will want to pet her to help her trust you again. We don't want her to be scared of you." You are not only encouraging empathy by helping him see things from the cat's perspective, you're also alerting him to the damage he's done to his relationship with the cat and suggesting how he might repair it.
Should you punish him for throwing the truck at the cat? He did know it could hurt her, and he aimed right at her. But that means he's obviously upset and sending you an SOS. When kids lash out like this aggressively, they're scared inside. If you punish him, you're missing the opportunity to help him work through those feelings, and they'll just burst out in some other misbehavior. He'll feel even worse about himself, and even more disconnected from you.
You might think this would be worth it if the punishment kept him from hurting the cat in the future. Unfortunately, punishment will have the opposite effect. Any kid being punished will inevitably start muttering some version of "It's all Kitty's fault... I'll show her!"
Instead, you help him safely express the emotions that incited his violence. First, you connect with him by getting down on his level and making eye contact. You create safety with your understanding. You say "You must be pretty upset to throw your truck at the cat. I know you love her and you are usually gentle with her. Want to tell me about it?" He might burst into tears and tell you how upset he is about something. In that case, be glad you got to the root of it, and hold him while he cries.
More likely, he'll give you that "patronized expression." That means he's trying to fend off the emotions under his anger, which are uncomfortable for him. So let's bypass that rational mind and let your son vent some of the anxious feelings that are seeking an outlet in truck-tossing. Forget empathic words. Go for play.
"Come here, you truck tossing tornado, you! I think this is a signal that we have to toss YOU around!" Get him giggling with some affectionate roughhousing. If he wants to play more, you can help him work on those power issues by letting him be the lion tamer, and you be the roaring lion, and let his powerful presence transform you from scary to purring.
Giggling will probably be enough to get your son back on track, having laughed out his upset and reconnected with you. But if his upset escalates, he may just need to cry: When Your Child Acts Out but Can’t Cry: Building Safety.
If his aggression continues, it's a signal that he needs your help to experience some fear or sadness that's eating at him: Helping Your Child Work Through Emotions So He Can Manage Them.
Has your son learned that hurling vehicles at others is off limits? Yes, but he already knew that. He just couldn't stop himself. Just removing the truck wouldn't have prevented a recurrence. What you've done is helped him with the feelings that led to his crime of passion, so it's less likely to be repeated. You've even strengthened your bond with him. He didn't get what he thought he wanted (more opportunities to hurl his truck.) But he got something better: a parent who understands, even when he knows he's breaking the rules -- and who helps him feel, and act, better. And you've done it without punishing. Not bad for a morning's work.
See why child development is intellectually fascinating? And it's good training for lion taming, too.