Autor Téma: Detekce výjimky v bloku --finally--  (Přečteno 236 krát)

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1414
  • Karma: 34
    • Pepak.net
Detekce výjimky v bloku --finally--
« kdy: 20-09-2018, 20:01:13 »
Také se zkusím zeptat. Netušíte někdo, jestli existuje spolehlivý způsob, jak se v bloku finally dozvědět o tom, jestli v jemu přináležejícímu bloku try vznikla výjimka, která zatím nebyla ošetřena? Vím, že se mohu podívat na proměnné ExceptObject a ExceptAddr, ale jak je chápu, ty nejsou spolehlivé - jsou to globální proměnné pro celý program, pokud dojde k výjimce v rámci jiného vlákna, tak buď vytvoří "falešnou" výjimku v mém bloku (výjimka nastala jinde), nebo změní obsah výjimky (o výjimce se dozvím, ale bude mít nesprávný obsah), případně může vzniklou výjimku i potlačit.

Zdůrazňuji, že nemohu použít žádný další try-cokoliv blok, kterým bych si třeba mohl poznamenat informaci o výjimce do lokální proměnné. Mohl bych případně číst data přímo na zásobníku, to mi až tak nevadí.

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1414
  • Karma: 34
    • Pepak.net
Re:Detekce výjimky v bloku --finally--
« Odpověď #1 kdy: 20-09-2018, 20:09:23 »
No prosím, jako obvykle se stačí zeptat a hned mě napadne Google search term, který mi dá odpověď. Zdá se, že tou odpovědí je AcquireExceptionObject, ten si bere data z thread local storage... Zítra zaexperimentuju.