Tratando de Erros a Partir de um Programa Lançado

Se você definiu seu próprio tipo de configuração de lançamento, é provável que tratará dos erros ou de outras informações que surgirem durante a execução do programa.  Por exemplo, poderá solicitar ou alertar o usuário quando determinados tipos de erros ocorrerem durante um lançamento ou fornecer mensagens informativas para determinadas alterações de status no programa.  Como é um bom hábito separar tratamento da UI da função núcleo, você não terá referências diretas de sua delegação de lançamento para as classes de tratamento de status.

Esse problema é tratado pelo ponto de extensão org.eclipse.debug.core.statusHandlers.  Ele permite a associação de uma rotina de tratamento de status a um código de status específico.  Com este ponto de extensão, você pode definir todos os códigos de status e de erros possíveis na delegação de lançamento e classes núcleo, enquanto registra rotinas de tratamento exclusivas para os 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 lançamento.  É responsabilidade da implementação da delegação de lançamento detectar erros, encontrar a rotina de tratamento de status apropriada e chamá-la.  A extensão simplesmente fornece um registro para que as rotinas de tratamento de status possam ser localizadas considerando-se os códigos de status específicos.  Os clientes encontram as rotinas de tratamento de status consultando o DebugPlugin.

IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);

As rotinas de tratamento de status devem implementar o IStatusHandler.  A classe de tratamento de status é especificada na definição da extensão, junto com seu código de status associado e o plug-in do qual se espera 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.workingDirectory"
		class="org.eclipse.jdt.internal.debug.ui.launcher.WorkingDirectoryStatusHandler"
		plugin ="org.eclipse.jdt.launching"
		code="115">
	</statusHandler>
	<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>
Copyright IBM Corp. e outros 2000,2002.