To avoid users putting non numeric data into a textbox, you could avoid textbox ;) The NumericUpDown was meant for inputing numbers.
But if you need to or want to use a Textbox, you make use of TryParse
instead of catching exceptions.
Dim value As Decimal ' to hold the numeric value we need later
If tb.Text = String.Empty Then
' either throw error and exit method or use default value
ElseIf Not Decimal.TryParse(tb.Text, value) Then
' not a decimal, inform user and exit sub
End If
' value contains something meaningfull at this point