Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Java. Zároveň využij akce až 80 % zdarma při nákupu e-learningu. Více informací:

Diskuze: Jakto, že try catch nezachytí vyjímku?

Aktivity
Avatar
Petr Adámek
Člen
Avatar
Petr Adámek:11.9.2020 10:22

Ahoooj. Zkouším vyřešit vyjímku týkající se odesílání dat po sériovém portu. Vyjímka se konkrétně týká odpojení zařízení během výměny dat. Z toho co zatím vidím jsem usoudil, že try catch nefunguje v případě odpojení zařízení. Místo toho aby se vykonal obsah catch(), program spadne a zobrazí se mi výpis chyby, viz. obrázek.

try{
port.Open();
                port.WriteLine("m1");
                minuta11 = port.ReadLine();

                System.Threading.Thread.Sleep(mili);

                port.WriteLine("h2");
                hodina22 = port.ReadLine();

                System.Threading.Thread.Sleep(mili);

                port.WriteLine("m2");
                minuta22 = port.ReadLine();

                System.Threading.Thread.Sleep(mili);

                port.WriteLine("h3");
                hodina33 = port.ReadLine();

                System.Threading.Thread.Sleep(mili);

                port.WriteLine("m3");
                minuta33 = port.ReadLine();
port.Close();
}

catch(Exception)
{
MessageBox.Show("Honey, there was a data transfer error.");
}

Zkusil jsem: Zkoušel jsem hledat konkretní vyjímku pro sériový port, každopádně catch(Exception) by měl zachytit jakoukoli vyjímku... teda, jak vidím, krom mého případu :-@

Chci docílit: Snažím se dosáhnout vykonání obsahu catch() při odpojení mého zařízení, nikoliv pádu programu.

 
Odpovědět
11.9.2020 10:22
Avatar
Odpovídá na Petr Adámek
Luboš Běhounek Satik:11.9.2020 11:12

Ahoj, tohle ti jen zobrazí visual studio, protože máš tenhle typ výjimek nastaveném tak, aby se při jejich vytvoření program zastavil na breakpointu. Když necháš program pokračovat, tak to spadne do toho catch. Říká se tomu first chance exceptions.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
11.9.2020 11:12
https://www.facebook.com/peasantsandcastles/
Avatar
Petr Adámek
Člen
Avatar
Petr Adámek:11.9.2020 11:45

jeeej.. Taková banalita... Moc ti děkuji Luboši 8-)

 
Nahoru Odpovědět
11.9.2020 11:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.