Eu uso o ArcObjects e usei o método try / catch que você mencionou.
No meu caso, mais de um usuário precisa ler e gravar dados na mesma classe de recurso em um geodatabase. Eu tenho uma "tela de carregamento" que aparece e permite que o usuário saiba que os dados estão em uso e, em seguida, um loop continua tentando a cada poucos segundos em segundo plano até que um bloqueio possa ser criado para eles.
A outra maneira que usei bloqueios é descrita abaixo. Sei que meu uso desse método de visualização de arquivos de bloqueio difere do que você deseja fazer, mas o conceito é o mesmo e você pode usar algo semelhante se precisar determinar o tipo de bloqueio ou a quem o bloqueio pertence. . Aqui está a informação, se você estiver interessado.
Como você pode ver os arquivos de bloqueio específicos, a quem eles pertencem, a que tipo de bloqueio são etc., se você olhar dentro do geodatabase no Windows Explorer, criará um aplicativo de "status" independente que monitora os arquivos de bloqueio dos arquivos específicos. classe de recurso que todos nós usamos.
Usando esse método, eu posso ver em tempo real, em um painel de fácil leitura, quem tem essa classe de recursos bloqueada (com base no nome do computador) e que tipo de bloqueio eles têm. Por exemplo, se ele vir um bloqueio "sr" (esquema), eu sei que eles têm a classe de recurso adicionada ao seu Índice, um bloqueio "rd" significa que eles estão lendo a classe de recurso, um bloqueio "wr" significa que eles estão escrevendo dados e um bloqueio "ed" significa que eles têm uma sessão de edição aberta na classe de recurso.
Isso é muito útil ao realizar a manutenção para poder olhar para baixo e garantir que isso não terá um efeito negativo em ninguém. A entrada "Desconhecido" também me alerta quando alguém inesperado está usando a classe de recurso e eu posso investigar mais.
Aqui está uma captura de tela do painel de instrumentos que eu uso.