Duvida javafx2

eu fiz um aplicativo em javafx
e depois de muito esforco consegui fazer ele rodar legal…

estou rodando o aplicativo em desktop

porem para que eu possa ver as excessoes eu tenho que executar o aplicativo.jar com
java -jar aplicativo.jar

eu gostaria que quando desse uma excessao esta aparecesse diretamente na tela
para o usuario…
e de preferencia ate parasse a aplicacao…

existe alguma maneira de resolver esse problema?
porque fazendo isso fica mais facil para identificar alguma coisa que aconteca…

[quote=jonasjgs2]eu fiz um aplicativo em javafx
e depois de muito esforco consegui fazer ele rodar legal…

estou rodando o aplicativo em desktop

porem para que eu possa ver as excessoes eu tenho que executar o aplicativo.jar com
java -jar aplicativo.jar

eu gostaria que quando desse uma excessao esta aparecesse diretamente na tela
para o usuario…
e de preferencia ate parasse a aplicacao…

existe alguma maneira de resolver esse problema?
porque fazendo isso fica mais facil para identificar alguma coisa que aconteca…
[/quote]

Você quer repassar ao seu cliente informações de debug? Você precisa tratar essas exceções e emitir mensagens de erro simples. Informação de depuração só serve para programadores.

Se seu programa JavaFX precisa de uma MessageBox, pode tentar algo parecido com isto aqui:

Você pode pegar seu stack trace e jogá-lo nessa Message Box.

Uma forma boboca de converter um Stack Trace em uma String é:

} catch (Throwable thr) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter (sw);
thr.printStackTrace(pw);
String stackTrace = sw.toString();
// faça alguma coisa com este stackTrace...
}

Obviamente, a melhor forma de criar uma mensagem de erro é deixar esse Stack Trace “escondido” (ou seja, você deve criar um botão que pega esse stack trace e o joga no clipboard, para que o usuário possa copiar o stack trace para o desenvolvedor. Simplesmente fazer um shift-printscreen da tela é ruim porque o stack trace normalmente não cabe em uma Message Box.)

[quote=entanglement]Obviamente, a melhor forma de criar uma mensagem de erro é deixar esse Stack Trace “escondido” (ou seja, você deve criar um botão que pega esse stack trace e o joga no clipboard, para que o usuário possa copiar o stack trace para o desenvolvedor. Simplesmente fazer um shift-printscreen da tela é ruim porque o stack trace normalmente não cabe em uma Message Box.)
[/quote]

Ou jogar em um arquivo de texto como um log. Por exemplo quando a exceção disparar criar um arquivo “erros.log”. Para o usuário você cria uma mensagem de erro simples que remete ao local exato da exceção no log(a informação que você precisa para saber qual problema ocorre).