Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Využij akce až 80% zdarma při nákupu e-learningu. Více informací .
BF summer
Avatar
Posix
Člen
Avatar
Posix: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
Proč to dělat jednoduše, když to jde složitě.
Avatar
Honza Bittner
Redaktor
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
Student FIT ČVUT. In love with Flutter. :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://g...
Avatar
Posix
Člen
Avatar
Posix: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
Proč to dělat jednoduše, když to jde složitě.
Avatar
Honza Bittner
Redaktor
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
Student FIT ČVUT. In love with Flutter. :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://g...
Avatar
Posix
Člen
Avatar
Posix: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
Proč to dělat jednoduše, když to jde složitě.
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Posix
Člen
Avatar
Posix: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
Proč to dělat jednoduše, když to jde složitě.
Avatar
marek.thunderbird:9.3.2013 8:28

Chtěl jsi něco takového?


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();
}
}

 
Nahoru Odpovědět
9.3.2013 8:28
Avatar
Kit
Redaktor
Avatar
Odpovídá na Posix
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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Posix
David Čápka: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
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
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.