Uso ArcObjects e ho usato il metodo try / catch che hai citato.
Nel mio caso, più di un utente deve leggere e scrivere dati nella stessa classe di funzionalità in un geodatabase. Ho una "schermata di caricamento" che viene visualizzata e fa sapere all'utente che i dati sono in uso e quindi un ciclo continua a provare ogni pochi secondi in background fino a quando non è possibile creare un blocco per loro.
L'altro modo in cui ho usato i blocchi è descritto di seguito. So che il mio uso di questo metodo di guardare i file di blocco differisce da quello che vuoi fare, ma il concetto è lo stesso e potresti essere in grado di usare qualcosa di simile se devi determinare il tipo di blocco o a chi appartiene il blocco . Ecco le informazioni se sei interessato.
Dal momento che è possibile visualizzare i file di blocco specifici, a chi appartengono, che tipo di blocco sono ecc. Se si guarda all'interno del geodatabase in Esplora risorse, è necessario creare un'applicazione di "stato" autonoma che controlli i file di blocco dello specifico classe di funzionalità che usiamo tutti.
Utilizzando questo metodo sono in grado di vedere in tempo reale da una dashboard di facile lettura chi ha quella classe di funzionalità bloccata (in base al nome del computer) e che tipo di blocco hanno. Ad esempio, se vede un blocco "sr" (schema), so che hanno la classe caratteristica aggiunta al loro Sommario, un blocco "rd" significa che stanno leggendo dalla classe caratteristica, un blocco "wr" significa che stanno scrivendo dati e un blocco "ed" indicano che hanno una sessione di modifica aperta sulla classe caratteristica.
Questo è molto utile quando si esegue la manutenzione per poter guardare in basso e assicurarsi che non avrà alcun effetto negativo su nessuno. La voce "Sconosciuto" mi avvisa anche quando qualcuno di imprevisto sta usando la classe di funzionalità e posso approfondire.
Ecco una schermata della dashboard che uso.