Jag försöker att kolla så att inmatningen i textbox är mer än 1 och att den inte innehåller bokstäver eller är tom, men jag får det inte att funka i den första catch utan programmet hänger sig eller ngt, om jag skriver in en bokstav eller lämnar tom så fungerar den andra catch men hur skar jag göra för att den första ska funka eller har jag tänkt helt åt h... snälla någon vad gör jag för fel? Hej, Tack för det snabba svaret och visst det funkar men sen när jag försöker att testa så käns det som om try inte slutar utan den bara står där och snurrar, är det mening med att man ska dessutom lägga till exit sub/try? om jag använder det andra så blir det inget bättre men om jag använder sub så slutar den. Try körs bara en gång och avslutas när du kommer till sista kodraden, då hoppar den till Finally.... Det är inte så att du har ngn form av loop runt din try? nej, jag har skrivit så som ovan och ingen loop runt, det är det som förbryllar mig, men det kanske är så att det inte passar i mitt program, så jag har använt först en if sats som tar hand om de fel jag kan komma på och sedan en try som tar hand om de fel jag inte kan komma på. Ett sätt är att fånga "felen" direkt efter inmatningen. Om du enbart vill validera en inmatning i en textbox använder du enklast textboxens metod validating.att förstå Try catch i vb.net
tackar på förhand
Try
ökning = CDbl(txtProcent.Text)
Catch except As Exception When ökning <= 1
Call ErrorMessage("You must enter a value more than 1")
Catch except As Exception When Not (IsNumeric(txtProcent.Text))
Call ErrorMessage("Enter a number, please")
Finally
Call ErrorMessage("something wrong")
End TrySv: att förstå Try catch i vb.net
Exceptions kastas bara når ngt går fel. Om du själv vill sätta regler så får du göra det med if satser,
<code>
Try
if not IsNumeric(txtProcent.Text) then
Calle ErrorMessage .....
ökning = CDbl(txtProcent.Text)
if ökning <= 1 then
Call ErrorMessage ....
Catch except As Exception ' kommer att anropas om ngt går fel
Call ErrorMessage("Enter a number, please")
Finally
' Den här anropas alltid, oavsett om det gick bra eller dåligt.
End Try
</code>Sv: att förstå Try catch i vb.net
Eftersom jag kan ännu inte förstå try fullt ut, så kan du Patrik L eller någon annan svar så vore jag tacksam,
jag befinner mig fortfarande på nybörjarnivå i programmeringSv: att förstå Try catch i vb.net
eller i dina message metoder?Sv: att förstå Try catch i vb.net
Jag är även ute efter om användaren gör dubbelfel så att säga, så vill jag att mitt medd. ska visas, om jag gjorde som du så snällt visade så var det det att skrev man 1,0 så kom det upp "skriv mer än 1" men om jag då skrev en bokstav så fick jag felmedd. som jag skrivit i try för övriga fel, men jag vill att try ska börja om, men jag kanske inte har greppat detta med try, fastän du förklarat.
mvh
christina Sv: att förstå Try catch i vb.net
<code>
Private Sub txtProcent_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
'-----När du lämnar textboxen körs denna metod-------
If Not IsNumeric(txtProcent.Text) Then
Msgbox("Enter a number, please")
'Markera all text och sätt fokus på kontrollen
txtProcent.Select(0, txtProcent.Text.Length)
txtProcent.Focus()
End If
Dim okning = CDbl(txtProcent.Text)
If okning <= 1 Then
MsgBox("You must enter a value more than 1")
txtProcent.Select(0, txtProcent.Text.Length)
txtProcent.Focus()
End If
End Sub
</code>
när sedan inmatningen lyckats kan du använda validated() för att köra kod
//Fredde