Favicon Svethardware.cz  Svět hardware   Fórum Favicon Svetaudia.cz  Svět audia Favicon TVFreak.cz  TV Freak   Fórum Favicon Digimanie.cz  Digimanie   Fórum   Galerie Společnost oXy Online s.r.o.
Zobrazené výsledky: 1 až 13 z 13

Téma: zpracovani vyjimek v aplikaci s nekolika urovnemi modalnich dialogu

  1. #1
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    zase budu mit jeden extremni problem

    Mam aplikaci nad .Net CF 1 (na zarizeni je sp3) a zjistil jsem, ze mi neodchytava spravne vyjimky (resp i kdyz mam spravne try..catch blok, tak aplikace spadne). Aplikace obsahuje hlavni formular, ze ktereho se spousti smycka modalnich dialogu (nektere modalni okna jeste samy zobrazuji dalsi modalni okna). Smycku z hlavniho formulare pousim z try..catch bloku. Pokud dojde na modalnim formulari k neosetrene vyjimce, try..catch blok chybu odchyti, ale v ten moment v aplikaci uplne prestane fungovat princip modalnich oken - pokud v catch zavolam MessageBos.Show("chyba 123"), tak se okno samo okamzite zavre. Nasleduje vzdycky pad aplikace.

    Pro jistotu jsem si to jeste overil na nove aplikaci - zalozil jsem aplikaci se 3 formulari. Form1 obsahuje tlacitko, ktere udela Form2.ShowDialog(). Form2 obsahuje podobne tlacitko, ktere otevre stejnym zpusobem Form3. na Form2 a 3 je jeste navic tlacitko, ktere vyhodi vyjimku. Tlacitko na Form1 vola kod:

    Kód:
    			try
    			{
    				Form frm = new Form2();
    				frm.ShowDialog();
    				frm.Dispose();
    			}
    			catch (Exception exc)
    			{
    				MessageBox.Show(exc.Message);
    			}
    			finally
    			{
    				MessageBox.Show("END");
    			}
    Form2+3 neobsahuji try..catch blok. Pokud na Form2 nebo 3 vyvolam vyjimku stisknutim tlacitka, na displayi probliknou rychle po sobe messageboxy z catch a finally na Form1 a aplikace spadne.

    Nesetkal jste se s timhle problemem nekdo? Kdyztak muzu nekam umisit i primo VS2k3 projekt...
    Odpovídat lze po přihlášení

  2. #2
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    jeste jsem ted zjistil, ze se asi jedna o problem, ktery souvisi pouze s CF1 SP3 - kdyz aplikaci zkousim na cistem emulatoru (bez SP), tak vsechno funguje, jak ma. pokud na emulatoru doinstaluju CF SP3 (netcf.all.wce4.X86.cab), tak se teprve zacne chyba projevovat... na zarizeni, ktere mam ted k dispozici (symbol mc9060) je uz ve vychozim stavu bez sp3 vyssi verze cf, ktera i tak chybu zpusobuje.

    verze cf:
    Emulator bez SP3: 1.0.2268.00 - vsechno funguje spravne
    Emulator i Symbol s SP3: 1.0.4292.00 - chyba se projevuje
    Symbol bez SP3: 1.0.3111.00 - chyba se projevuje

    vypada to teda, ze je chyba v samotnem cf od urcite verze vys - zajimave, ze se mi nepodarilo vygooglit tenhle problem u nekoho jineho...
    Odpovídat lze po přihlášení



  3. #3
    Starousedlík SMob
    Registrace
    Jun 2004
    Příspěvků
    9,300

    Jenom takova drobna poznamka... Mne celkem prekvapuje, ze neodchytavate exceptiony ve formu, ktery tu exception zpusobil...
    Pokud ji potrebujete dostat do volajiciho formu, tak je nutne raisenout event, ze nastala exception...
    Tedy aspon ja to tak vzdycky programuji...
    Odpovídat lze po přihlášení

  4. #4
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    takovouhle "vecnou" reakci jsem presne cekal... :/

    samozrejme, ze tak programuju - na tuhle chybu jsem prisel az diky jedne komercni gui komponente (resco smartgrid), ve ktere je chyba, ktera se za urcitych podminek projevi az behem zobrazeni forulare (frm.ShowDialog()). ShowDialog() mam samozrejme v try..catch, ale v momente odchyceni vyjimky uz v cele moji aplikaci nefunguje modalni zobrazovani oken, takze se cela aplikace zhrouti - viz moje predchazejici prispevky... proto jsem se snazil zjistit, v cem je zakopany pes, pomoci tehle jednoduche testovaci aplikace, ktera chybu v cf reprodukuje...

    btw testovaci aplikaci (VS2k3 solution) jsem daj sem
    Odpovídat lze po přihlášení

  5. #5
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Myslim, ze tohle souvisi se zpracovanim messages ve fronte v raqmci catch sekce.

    Zkuste vyhodit volani MessageBox z catch i Finally - v catch nastavte bool promennou s chybou

    Kód:
    bool error = false;
    string message = String.Empty;
    try
    {
      Form frm = new Form2();
      frm.ShowDialog();
      frm.Dispose();
    }
    catch (Exception exc)
    {
      error = true;
      message = exc.Message;
    }
    finally
    {
    
    }
    
    if (error)
    {
      MessageBox.Show(message);
    }
    Odpovídat lze po přihlášení

  6. #6
    Starousedlík SMob
    Registrace
    Jun 2004
    Příspěvků
    9,300

    FYI na okraj: Padne to i na CF 2.0.
    Odpovídat lze po přihlášení

  7. #7
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    2beecher: diky za vyzkouseni & info... to mne opravdu netesi - doufal jsem, ze aspon prechod na CF2 (kteremu se stejne nevyhnu) to vyresi

    2rstein: ted jsem to vyzkousel a pada to uplne stejne - proste jakmile dojde v modalnim okne k neosetrene vyjimce, tak je fungovani modalnich oken v cele aplikaci v haji a aplikace postupne pozavira vsechny okna a ukonci se...

    nemam v tomhle s MS zadnou zkusenost - jak se jim da takovyhle maxibug nahlasit? MSDN subscription nemam...
    Odpovídat lze po přihlášení



  8. #8
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Tak jsem to jeste vyzkousel sam, ne ze bych Vam neveril, ale zdalo se mi to divny.
    Vypada to na oipravdu zakernou chybu prino v CNF, kdy se generuje neosetrena exception, kterou neni mozne zachytit

    Nareportovat bug muzete zde.
    http://lab.msdn.microsoft.com/ProductFeedback/
    Odpovídat lze po přihlášení

  9. #9
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    dik za overeni i u Vas - aspon mam ted jistotu, ze nedelam nekde chybu, ale ze je opravdu problem primo v CF...

    zadal jsem bug u MS (doufam, ze spravne ) - doufam, ze se na to brzo podivaji...

    http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?FeedbackId=1caf6129-eae7-493a-aa65-7d1829f613e4
    Odpovídat lze po přihlášení

  10. #10
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    uz je to delsi dobu, ale MS uz bug "vyresil" - teda spis jenom oznacil za vyreseny a dal o tom odmita zrejme komunikovat. zajimavy pristup :

    http://connect.microsoft.com/VisualS...edbackID=94356
    Odpovídat lze po přihlášení

  11. #11
    Starousedlík SMob
    Registrace
    Jun 2004
    Příspěvků
    9,300

    Pokud to chapu dobre, tak to oznacili resolved z duvodu toho, ze je to chyba v .NET CF core, na kterou neexistuje reseni bez zasahu do kodu vlastniho .NET CF. Tzn. vase hlaseni je "vyreseno" by design a asi maji nejaky mechanismus dalsiho zpracovani hlaseni, ktery uz nevidime...
    Odpovídat lze po přihlášení

  12. #12
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    aha - to zni rozumne... kdyz jsem videl "resloved: by design", tak jsem si predstavil spis redesign svoji aplikace - doufam, ze spatne taky tam mohli napsat neco v tom stylu, ze v CF3 uz to bude ok nebo neco vic jednoznacneho....
    Odpovídat lze po přihlášení



  13. #13
    Starousedlík SMob
    Registrace
    Jun 2004
    Příspěvků
    9,300

    Nene, maji to proste spatne a asi nejaky architekt .NET CF nekde udelal asibku... Proto By Design...

    A myslim, ze do CF3 je daleko...
    Odpovídat lze po přihlášení

Podobná témata

  1. Reakcí: 2
    Poslední příspěvek: 03-11-2010, 21:39
  2. Zpracování log z GPS
    Od Dušan Mrázek v sekci Příslušenství pro navigaci
    Reakcí: 9
    Poslední příspěvek: 09-08-2006, 06:50
  3. zpracování Acer n35 vs. n50
    Od Ellie_ce4you v sekci Acer
    Reakcí: 4
    Poslední příspěvek: 06-03-2006, 15:55
  4. Reakcí: 3
    Poslední příspěvek: 20-01-2006, 11:25