Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu. Zároveň využij akce až 80 % zdarma při nákupu kreditů. 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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka: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
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na David Čápka
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.