Yo uso ArcObjects y he usado el método try / catch que mencionaste.
En mi caso, más de un usuario necesita leer y escribir datos en la misma clase de entidad en una geodatabase. Tengo una "pantalla de carga" que aparece y le informa al usuario que los datos están en uso y luego un bucle sigue intentando cada pocos segundos en segundo plano hasta que se pueda crear un bloqueo para ellos.
La otra forma en que he usado bloqueos se describe a continuación. Sé que mi uso de este método para ver los archivos de bloqueo difiere de lo que desea hacer, pero el concepto es el mismo y puede usar algo similar si necesita determinar el tipo de bloqueo o a quién pertenece el bloqueo . Aquí está la información si está interesado.
Como puede ver los archivos de bloqueo específicos, a quién pertenecen, qué tipo de bloqueo son, etc., si mira dentro de la geodatabase en el Explorador de Windows, se crea una aplicación de "estado" independiente que monitorea los archivos de bloqueo de cada clase de entidad que todos usamos.
Utilizando este método, puedo ver en tiempo real desde un panel de control fácil de leer quién tiene esa clase de entidad bloqueada (según el nombre de la computadora) y qué tipo de bloqueo tienen. Por ejemplo, si ve un bloqueo "sr" (esquema), sé que tienen la clase de entidad agregada a su Tabla de contenido, un bloqueo "rd" significa que están leyendo desde la clase de entidad, un bloqueo "wr" significa que están escribiendo datos y un bloqueo "ed" significa que tienen una sesión de edición abierta en la clase de entidad.
Esto es muy útil cuando se realiza el mantenimiento para poder mirar hacia abajo y asegurarse de que no tendrá un efecto negativo en nadie. La entrada "Desconocido" también me alerta cuando alguien inesperado está usando la clase de entidad y puedo investigar más a fondo.
Aquí hay una captura de pantalla del tablero que uso.