Diskuze: Zachytávání vyjímek
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
zkoušels :
void neco(object sender, EventArgs e)
{}
neco(null,null);
?? nevím no jestli ti to pomůže no
Proč bych to dělal? Jak to souvisí s mým problémem?
no asi jsem to špatně pochopil neřeš mě
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?
Ok vyřešeno, místo void jsem dal Task. A bylo to tím async...
public async Task vyhodVyjimku() { ... }
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.WriteLine(e.Message);
Console.ReadKey();
}
}
</code>
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ě.
Zobrazeno 9 zpráv z 9.