sytuacje wyjatkowe w watku

dział ogólny

sytuacje wyjatkowe w watku

Nowy postprzez banita » niedziela, 29 marca 2009, 23:24

mam nowy watek w ktorym wyciagam jakies dane z bazy, cos tam z nimi robie i zamykam polaczenie -koniec watku.

po drodze kilkakrotnie moze dojsc do sytuacji wyjatkowej np podczas zerwania poczlania, jakies nieprawidlowe zapytanie itd...
co wtedy?

na probe wywolalem wyjatek w nowym watku i proba przchwycenia go wewnatrz exectue lub z poziomu watku glownego zakonczyla sie zwiecha aplikacji i srodowiska.

jak sobie z tym radzic? chyba to logiczne ze w watku moze dojsc do sytuacji wyjatkowej.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: sytuacje wyjatkowe w watku

Nowy postprzez polymorphism » poniedziałek, 30 marca 2009, 12:02

Wyjątek możesz przechwycić tylko w kontekście wątka, który go wyrzucił. Innej opcji nie ma. Jeśli przechwytywanie masz poprawnie zrobione, a mimo to aplikacja ci się zawiesza, to problemu szukałbym w innym miejscu.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    NieznanyNieznana

Re: sytuacje wyjatkowe w watku

Nowy postprzez banita » poniedziałek, 30 marca 2009, 23:17

problemem byla funkcja ShowMessage wywolana w bloku obslugi watku. funkcja ta wywoluje si emodalnie i blokuje aplikacje. czy tej to udokumentowane ze nie mozna uzywac tego typu wywolan w watku?
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: sytuacje wyjatkowe w watku

Nowy postprzez polymorphism » wtorek, 31 marca 2009, 11:03

Jeśli jest to VCL-owa wersja ShowMessage, a wyjątek wywołał jakiś obiekt VCL, to być możesz nastąpiła jakaś blokada/błąd przy zwijaniu stosu, nie wiem. Z drugiej strony obiekty VCL nie są thread safe, więc tu wszystko jest możliwe...
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    NieznanyNieznana

Re: sytuacje wyjatkowe w watku

Nowy postprzez banita » wtorek, 31 marca 2009, 17:56

dokladnie! VCL musi robic jakis konflikt. zastosowanie MessageBox rozwiazuje problem.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 6 gości