Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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í.
Avatar
Petr Nymsa
Tvůrce
Avatar
Petr Nymsa:8.9.2013 17:59

Ahoj, ačkoliv už mám něco málo naprogramováno, vyjímkám jsem se vždy tak nějak trošku vyhýbal :o nebo resp. do teď je asi nepoužívám správně. Ukázka metody, která načítá data ze zadaného souboru (xml souboru) a deserializuje do kolekce.

Už předem vím, že to je trošku divný 8| Když dojde k chybě při načítání metoda vrátí null. No takže v místě kde volám tuto metodu se vlastně zpětně nedozvím k jaké chybě přesně došlo a nemůžu informovat uživatele. Jedině zjistím, že se vrátilo null (ok asi došlo k chybě) a informuju ho obecně.

Takže správnější řešení je prostě zachytit vyjímku ale "prohodit" ji dál k volajícímu a ten ať si ji zachytí ? Nebo úplně jinak ? Díky :)

public async Task<ObservableCollection<T>> LoadFileAsync<T>(string xmlFileName, StorageFolder folder)
       {
           ObservableCollection<T> list = new ObservableCollection<T>();
           try
           {

               srl = new XmlSerializer(typeof(ObservableCollection<T>));
               file = await folder.GetFileAsync(xmlFileName + ".xml");
               string text = await FileIO.ReadTextAsync(file);
               XmlReader reader = XmlReader.Create(text);
               list = (ObservableCollection<T>)srl.Deserialize(reader);
               return list;
           }
           catch
           {
               return null;
           }
       }
Odpovědět
8.9.2013 17:59
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Petr Nymsa
David Hartinger:8.9.2013 18:02

Záleží jak to chceš, nemusíš ji chytat v téhle metodě vůbec a naopak ji chytat tam, kde metodu voláš.

Nahoru Odpovědět
8.9.2013 18:02
New kid back on the block with a R.I.P
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na David Hartinger
Petr Nymsa:8.9.2013 18:04

No ono vlastně tahle třída by ani informovat vůbec neměla. Je to pouze model na načtení dat.

Jo takže to zachytím v místě kde to volám. Díky :)

Nahoru Odpovědět
8.9.2013 18:04
Pokrok nezastavíš, neusni a jdi s ním vpřed
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.