Usuário com melhor resposta
Runtime Exceptions em Thread

Pergunta
-
Pessoal, estou com um grande problema e não consegui resolver de jeito nenhum
Tenho uma aplicação que Trabalha com MultiThreads no VB.NET
e quando ocorre um Runtime Exception não tratado em vez de apontar o erro o aplicativo simplesmente mostra a mensagem do windows
"O [nome da aplicação] encontrou um problema e precisa ser fechado. Lamentamos o inconveniente."
sem mais nenhum detalhe sobre o erro, o que eu quero é que o erro que aconteceu seja mostrado
alguém sabe como fazer isso??
desde já agradeço
Pedro Canadas
Respostas
-
Pessoal,
Resolvi meu problema utilizando UnhandledException ainda aparece que o aplicativo precisa ser fechado porém consigo pegar o código e descrição do erro e gravar em um arquivo de log.
abs,
Pedro
- Marcado como Resposta Pedro Canadas quinta-feira, 28 de outubro de 2010 22:53
Todas as Respostas
-
Pedro,
Vc nao esta depurando sua aplicação?
se nao esta crei um delegate para o seu tread... assim vc pode depurar.. coloque um try cath na chamada do tread...
ctrl+c do post que foi respondido ontem.
Imports System.Threading
public class Teste
Private Delegate Sub MeuDelegate()
Private _thread As Thread
Private Sub ImportarDelegate()
Dim _delegate As New MeuDelegate(AddressOf MetodoChamado)
Invoke(_delegate)
End Subprivate MetodoChamado()
seu codigo aqui..
end Sub
Private Sub MetodoQueIniciaOThread(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
try
_thread = New Thread(New ThreadStart(AddressOf MeuDelegate))
_thread.SetApartmentState(ApartmentState.STA)
_thread.Start()catch ex as Exception
messagebox.show(ex.message)
end Sub
ae quando for lançado a excessao vai saber qual o erro...
espero ter ajudado.. abs
-
Vander,
Pelo debug a descrição do erro acontece mas quando está pelo exe que acontece o problema, fiz o teste usando delegate com o código abaixo
e acontece o mesmo problema.
Pelo debug ocorre "Operação aritmética resultou em um estouro."
Pelo EXE ocorre "WindowsApplication1 parou de funcionar"
Imports System.Threading Public Class Form1 Private Delegate Sub MeuDelegate() Private _thread As Thread Private Sub ImportarDelegate() Dim _delegate As New MeuDelegate(AddressOf MetodoChamado) Invoke(_delegate) End Sub Private Sub MetodoChamado() Dim A As Integer = 1 Dim B As Integer = 0 A = A / B End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try _thread = New Thread(New ThreadStart(AddressOf ImportarDelegate)) _thread.SetApartmentState(ApartmentState.STA) _thread.Start() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub End Class
-
-
Ola
De uma olhada nisso
http://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception.aspx
Note que o exemplo é um pouco complexo, mas creio que é a unica maneira de caputar erros em threads.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
SOGI INFORMATIQUE LTÉE (http://www.sogi.com) -
Pedro,
Você conseguiu solucionar o seu problema?
Caso afirmativo poste a solução para que outras pessoas se beneficiem.Att,
Fernanda
“Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”. -
Pessoal,
Resolvi meu problema utilizando UnhandledException ainda aparece que o aplicativo precisa ser fechado porém consigo pegar o código e descrição do erro e gravar em um arquivo de log.
abs,
Pedro
- Marcado como Resposta Pedro Canadas quinta-feira, 28 de outubro de 2010 22:53