IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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
Neaktivní uživatel:8.3.2013 23:56

Zdravím, rovnou uvedu příklad v C++, ktery jede bez chyby

// pseudo c++
void vyhodVyjimku()
{
    throw Exception;
}
void funkce()
{
    vyhodVyjimku();
}
void main()
{
    try
    {
        funkce();
    }
    catch (Exception e)
    {
        cout << "chyba";
    }
}

V c# mi to ale hodí chybu, že jsem nezachytil chybu. Prostě hned po provedení funkce, která vyhodila vyjimku to chce nejak osetrit. Chapete, co tim myslim?

Odpovědět
8.3.2013 23:56
Neaktivní uživatelský účet
Avatar
Honza Bittner
Tvůrce
Avatar
Honza Bittner:9.3.2013 0:03

zkoušels :

void neco(object sender, EventArgs e)
{}

neco(null,null);

?? :) nevím no jestli ti to pomůže no :)

Nahoru Odpovědět
9.3.2013 0:03
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Neaktivní uživatel:9.3.2013 0:07

Proč bych to dělal? Jak to souvisí s mým problémem? :D

Nahoru Odpovědět
9.3.2013 0:07
Neaktivní uživatelský účet
Avatar
Honza Bittner
Tvůrce
Avatar
Honza Bittner:9.3.2013 0:08

no asi jsem to špatně pochopil :D neřeš mě :D

Nahoru Odpovědět
9.3.2013 0:08
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Neaktivní uživatel:9.3.2013 0:53

Tak mě napadlo, proč to asi dělá, ale nevim jak to vyresit. Ta funkce vyhodVyjimku se vola asynchronne (await vyhodVyjimku ()). Ted nevim, jestli se to pousti v jinem vlakne. Nebo je to uplna blbost?

Nahoru Odpovědět
9.3.2013 0:53
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:9.3.2013 1:06

Ok vyřešeno, místo void jsem dal Task. A bylo to tím async...

public async Task vyhodVyjimku() { ... }
Editováno 9.3.2013 1:07
Nahoru Odpovědět
9.3.2013 1:06
Neaktivní uživatelský účet
Avatar
marek.thunderbird:9.3.2013 8:28

Chtěl jsi něco takového?

<code>
private static void vyhodVyjimku()
{
throw new Exception("chyba");
}

private static void funkce()
{
vyhodVyjimku();
}

static void Main(string[] args)
{
try
{
Program.funkce();
}
catch (Exception e)
{
Console.Write­Line(e.Message);
Console.ReadKey();
}
}
</code>

 
Nahoru Odpovědět
9.3.2013 8:28
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:9.3.2013 9:39

Nevím, jak se to dělá v C#, ale v Javě se do hlavičky funkce přidává klíčové slovo "throws" s rozhraním výjimky. Říká to překladači, že se výjimka má postoupit volající metodě.

Nahoru Odpovědět
9.3.2013 9:39
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:9.3.2013 11:08

Nám pošli ten kód v C#, ne? :D

Nahoru Odpovědět
9.3.2013 11:08
New kid back on the block with a R.I.P
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 9 zpráv z 9.