Se você definiu seu próprio tipo de configuração de ativação, é provável que deseje tratar erros ou outras informações de status que surgem durante a execução do programa. Por exemplo, você pode querer avisar ou alertar o usuário quando determinados tipos de erro ocorrerem durante uma ativação ou fornecer mensagens informativas para determinadas alterações de status no programa. Como é uma boa prática separar a manipulação da UI da função de núcleo, você não deseja ter referências diretas de seu delegado de ativação para classes de manipulação de status.
Esse problema é tratado pelo ponto de extensão org.eclipse.debug.core.statusHandlers.Ele permite associar uma rotina de tratamento de status a um código de status específico. Utilizando esse ponto de extensão, você pode definir todos os códigos possíveis de erro e de status em suas classes de núcleo e de delegado de ativação enquanto registra rotinas de tratamento exclusivas para códigos de status diferentes de outro plug-in.
O ponto de extensão não designa nenhuma associação entre uma rotina de tratamento de status e uma configuração de ativação. Compete à implementação do delegado de ativação detectar erros, localizar a rotina apropriada de tratamento de status e chamá-la. A extensão simplesmente fornece um registro para que as rotinas de tratamento de status possam ser localizadas para códigos específicos de status. O DebugPlugin fornece um método utilitário para obtenção de uma rotina específica de tratamento de status.
IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);
As rotinas de tratamento de status devem implementar IStatusHandler.A classe de manipulação de status é especificada na definição da extensão, juntamente com seu código de status associado e o plug-in esperado para gerar os códigos de status.
A seguinte marcação mostra como as ferramentas Java declaram as rotinas de tratamento de status:
<extension point = "org.eclipse.debug.core.statusHandlers"> <statusHandler id="org.eclipse.jdt.debug.ui.statusHandler.vmConnectTimeout" class="org.eclipse.jdt.internal.debug.ui.launcher.VMConnectTimeoutStatusHandler" plugin ="org.eclipse.jdt.launching" code="117"> </statusHandler> ... </extension>