I like to use ReentrantLock even when the same result could be achieved with synchronized. I don't really do it for performance but just because I prefer to use the try-catch-finally block of locks.
The question is: is it acceptable to use ReentrantLock in any situation where synchronized could be used or is it bad practice and synchronized should be used over locks?