

Visual Basic - ošetření chyb
Potřeboval bych vědět, jak se ošetří ve Visual Basicu chyba tohoto typu:
vysledek.Text = 2 * 3,141592 * polomer.Text
Pokud do pole "polomer" někdo napíše třeba dsgjki, tak program zákonitě spadne. Jak docílit toho, aby se to při takto špatně zadaném "čísle" zobrazil např MsgBox s nápisem "Piš pouze číslice!!!" a program se v tu chvíli zastavil. Chci mít ten můj program vyšperkovaný, ale jak říká jeden z Murphyho zákonů něco takového : Napíšeš program, ošetříš ho jak můžeš, ale VŽDY se najde jeden blbec, kterej ho shodí
Díky za odpovědi.
P.S. Na Googlu jsem hledal ale nic jsem nenašel, možná je heslo "Visual Basic ošetření chyb" špatné
Podle google...
Taky good ale trochu dlouhé
jak nefunguje? pro desetiná cisla - jsi si jistej oddělením tečka/čárka/dvojtečka..?
Každopdáně používej hostovo řešení is numer.
Funkce isnumeric()
http://msdn2.microsoft.com/en-us/library/6cd3f6w1(V S.80).aspx
Mně to dojde až to uvidím na příkladu (jsem asi blbec)
Takže :
polomer = textové pole, kam se zadává polomer
tlacitko = po stisknuti se provede vypocet
vysledek = Výsledek výpočtu
Ved na tom msdn mas aj priklad.
Pred vypoctom pouzijes if a testovat budes ze ci IsNumeric(polomer.Text) je TRUE (vtedy robis vypocet), inac nerobis vypocet ale vypises chybu.
P.S. dobre by bolo potom aj testovat ze ci je to mensie ako nula, ak ano tak tiez vypises chybu kedze zaporny polomer je tiez blbost.
nejak tak.. visual neumim
Uf, jestli si nedokážeš najít použití funkce v helpu nebo na webu, tak to budeš mít v životě jako programátor těžký.

OOOOOOOOOOOO Už to chápu
. Dneska jsem vygumovanej.
Bože! Ten VB má ale prasacký syntax...

co to konkretne dela/nedela hodi to tu hlasku nebo je spatnej vysledek?
Ono to je totiž asi špatně naprogramované.
Kdybys alespoň napsal, co nefunguje?! Funkce isnumeric() samozřejmě pracuje i s desetinnými čísly. Pokud máš na mysli funkci Val(), tak ta vyžaduje desetinné číslo zadané s tečkou - nikoliv čárkou.
If IsNumeric(vykon.Text) Then
If IsNumeric(syceni.Text) Then
dopprurez.Text = Sqr((vykon.Text / 0.8) / syceni.Text)
Else
MsgBox ("Zadaná hodnota musí být číslo s desetinnou čárkou!")
End If
Else
MsgBox ("Zadaná hodnota musí být číslo s desetinnou čárkou!")
End If
Prasácky uděláno ale jde to
dobré je používat nějaký logický operátor typu: OR/AND:
If isNumeric(vykon.text) AND IsNumeric(syceni.Text) Then
vypocet
Else
MsgBox("Musi byt cislo")
End if