Potřebuju hodit vyjímku, když uživatel do stringu zadá něco jiného než písmena a-z a tečku, ví někdo jak na to?
Dík za odpověď
Fórum › .NET
String, vyjímky a rokenrol
int.Parse / TryParse
nebo přes regex pak, ale tohle by mělo stačit snad
tak logicky pokud int.Parse vyhodí vyjímku (v případě, že vstup nepůjde prevést na číslo - musí obsahovat pouze číslo), tak máš co si potřeboval
a znak @ opravdu není číslo, takže vyhodí vyjímku při konverzi
akorát si teď nejsem jistej, jak to bude s tečkou, jestli to jen neořízne, ale to si zkus už sám
PS: a pokud TryParse bude false, tak to selhalo (vyhodila se vyjímka na pozadí a můžeš si to ošetřít v podmínce)
#10 Zzzajda
však ti to zlz podstatě celý napsal....akorát na konci místo +$ by mělo být *$ (aspoň je to tak lepší)
void funkce(string text)
{
if (!Regex.IsMatch(text, @"^[a-z\.]*$"))
{
// vstup je v háji
throw new FormatException();
}
else
{
// pokud vstup bude validni
}
}
// volani funkce treba v Main()
try
{
funkce("vstup5"); // vyhodi vyjimku díky "5" a skočí se do "catch" bloku
}
catch (FormatException ex) // možno vynechat
{
Console.WriteLine(ex.ToString());
}
#12 P
vyjímka se spíš používá když to nejde ošetřit nějak jinak.. většina věcí jde bez problému přes podmínku, ale nejdou se takový, který vyhazujou přímo vyjímku a tam podmínka nepomůže (např. na streamech)... krom toho autor chtěl přímo vyhodit vyjímku
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Kontrola zda string obsahuje jiný string — založil beachboy
Výjimky a vlákna — založil Houp
VS 2008 neočekávané výjimky — založil vdolek
Výjimky a DLL, nerozumím — založil Aigor
Výjimky a notifikace debuggeru — založil tom*p
Moderátoři diskuze