I would never hit a child, ever. Its our job as parents to teach our children how to behave, not hit them into listening. Spanking may "work" in the short term, but not in the long term. For example if you hit a child for throwing a temper tantrum it may "stop" the tantrum, but it doesn't teach a child how to control their emotions. If you take the time to listen, redirect, and create resilience it will not only have short term effects, but long term ones also.
We don't use punishment at all as a discipline tool. So although we use timeouts and take away toys it looks a bit different than most people. We don't use timeouts to say "you are bad so you sit here for 2 minutes." We use them as a time to teach our child calm down techniques. So I may say something like "I see you are getting angry and frustrated, both of which are okay, but I think we need to go take a minute to calm down. Lets both go calm down together downstairs. While down there we may do some breathing and taking about what we can do next time when we feel that way, and what are appropriate and inappropriate ways to handle it.
We would only take away a toy if it fit the crime. So if he threw it at me, or wasn't picking it up. We focus more on teaching how to do the right thing instead of punishing them when they do the wrong thing. We also look more at the need that is trying to be communicated through the behaviour. All misbehaviour is a way of communicating a need. Solve the need instead of punishing the behaviour, and the behaviour stops.