This is such a difficult line to walk. I like the way this article explains it.
As Jesus showed us by His own life, true love takes many shapes. But we are blind to too many of them. We feel comfortable with the Jesus Who cured the lepers, gave sight to the blind, healed the crippled, and brought the dead back to life. We feel at ease with the Jesus Who gathered the little children around Him and blessed them, and we are comforted by the Jesus Who forgave the most notorious sinners over and over again. We like the kindness that Jesus shows to His mother in changing the water into wine at the wedding feast, just because she asked. And we’re touched by His tenderness to her as He hung upon the Cross.
But there is another side of Jesus that makes us want to avert our eyes, because we don’t exactly know what to do with it. And that is the angry Jesus, as we see Him in today’s Gospel, casting the chiseling moneychangers out of the temple, or denouncing the hypocrisy of the religious leaders who were no leaders at all, or reprimanding Peter who wants Him to take the easy way out and run away.
We have learned to be afraid of all anger and to make no distinction between its good and bad varieties. Jesus made that distinction clear for us. Bad anger contains hate and wishes another person harm. Good anger is always aimed at behaviors, not persons. It hates the sin but not the sinner. Indeed, good anger can be for the good of those who are in the wrong, because it can wake them up — if they’re willing to listen.
Anger is a powerful tool and it can be misused so easily, but so can our inclinations toward passivity even in the face of great evils. Hate the sin, but love the sinner, and you’ll never go awry.