String, vyjímky a rokenrol – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

String, vyjímky a rokenrol – .NET – Fórum – Programujte.comString, vyjímky a rokenrol – .NET – Fórum – Programujte.com

 

Zzzajda0
Newbie
12. 9. 2012   #1
-
0
-

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ěď

Nahlásit jako SPAM
IP: 77.87.242.–
ingiraxo+15
Grafoman
12. 9. 2012   #2
-
0
-

   

int.Parse / TryParse

nebo přes regex pak, ale tohle by mělo stačit snad

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Zzzajda0
Newbie
12. 9. 2012   #3
-
0
-

Co když uživatel zadá "@" ? TryParse bude false ale to mi bude k ničemu...nebo celej tvůj nápad s integerama nechápu

Nahlásit jako SPAM
IP: 77.87.242.–
ingiraxo+15
Grafoman
12. 9. 2012   #4
-
0
-

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)

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
KIIV
~ Moderátor
+43
God of flame
12. 9. 2012   #5
-
0
-

#4 ingiraxo
mam pocit ze chtel vyhodit vyjimku, kdyz uzivatel zada neco jineho nez pismena a tecku

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
zlz
~ Anonymní uživatel
634 příspěvků
12. 9. 2012   #6
-
0
-

   

if (!Regex.IsMatch(text, "^[a-z.]+$"))
{
    throw new FormatException();
}
Nahlásit jako SPAM
IP: 78.156.159.–
zlz
~ Anonymní uživatel
634 příspěvků
12. 9. 2012   #7
-
0
-

   

^[a-z\.]+$
Nahlásit jako SPAM
IP: 78.156.159.–
zlz
~ Anonymní uživatel
634 příspěvků
12. 9. 2012   #8
-
+1
-
Zajímavé

   

@"^[a-z\.]+$"

  

Nahlásit jako SPAM
IP: 78.156.159.–
ingiraxo+15
Grafoman
12. 9. 2012   #9
-
0
-

#5 KIIV
aha.. no, v každým případě throw si může dát do podmínky jako uvedl zlz

a od začátku jsem to špatně přečet, měl jsem stále za to, že chce na vstupu pouze čísla

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Zzzajda0
Newbie
12. 9. 2012   #10
-
0
-

#6 zlz
Přesně tohle potřebuju, ale nemůžes sem prosim hodit celou try/catch konstrukci, v ošetřování vyjímek se necítím zrovna v kramflecích...

Nahlásit jako SPAM
IP: 77.87.242.–
ingiraxo+15
Grafoman
12. 9. 2012   #11
-
0
-

#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());
}
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
P
~ Anonymní uživatel
212 příspěvků
13. 9. 2012   #12
-
0
-

#11 ingiraxo
Je vubec osetreni vstupu uzivatele pomoci vyjimky dobrej napad?

Nahlásit jako SPAM
IP: 85.93.116.–
ingiraxo+15
Grafoman
13. 9. 2012   #13
-
0
-

#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

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Vaizo0
Stálý člen
18. 9. 2012   #14
-
0
-

#10 Zzzajda
Google jsi nezkoušel?

Nahlásit jako SPAM
IP: 85.93.127.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Výjimky a vlákna — založil Houp

Výjimky a DLL, nerozumím — založil Aigor

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý