I use ArcObjects and have used the try/catch method you mentioned.
In my case more than one user needs to read and write data in the same feature class in a geodatabase. I have a "load screen" that comes up and lets the user know that the data is in use and then a loop keeps trying every few seconds in the background until a lock is able to be created for them.
The other way I've used locks is described below. I know my use of this method of looking at lock files differs from what you are wanting to do but the concept is the same and you may be able to use something similar if you need to determine the type of lock or who the lock belongs to. Here is the info if you're interested.
Since you can see the specific lock files, who they belong to, what type of lock they are etc. if you look inside the geodatabase in Windows Explorer is to create a stand-alone "status" application that monitors the lock files of the specific feature class we all use.
Using this method I'm able to see in real time from an easy to read dashboard who has that feature class locked (based on computer name) and what type of lock they have. For example if it sees an "sr" (schema) lock I know they have the feature class added to their Table of Contents, an "rd" lock means they are reading from the feature class, a "wr" lock means they are writing data and an "ed" lock means they have an edit session open on the feature class.
This is very helpful when performing maintenance to be able to glance down and make sure it's not going to have a negative effect on anyone. The "Unknown" entry also alerts me to when someone unexpected is using the feature class and I can investigate further.
Here is a screen shot of the dash board I use.