2013-03-19 196 views
0
Dim labor, material, partstotal, labortotal, subtotal, tax, total As Decimal 
    material = Decimal.Parse(AmountTextBox.Text) 
    labor = Decimal.Parse(LaborTextBox.Text) 

    partstotal = material 
    labortotal = labor * 50 
    subtotal = labortotal + partstotal 
    tax = subtotal * 0.08 
    total = subtotal + tax 

    partstotal = Decimal.Parse(PartsTextBox.Text) 
    labortotal = Decimal.Parse(LaborTextBox.Text) 
    subtotal = Decimal.Parse(SubTotalTextBox.Text) 
    tax = Decimal.Parse(SalesTaxTextBox.Text) 
    total = Decimal.Parse(TotalTextBox.Text) 

material = Decimal.Parse(AmountTextBox.Text)將不會運行。 爲什麼?格式異常未處理

+1

你的意思是不運行?它似乎會引發異常,對吧?複製和粘貼錯誤在這裏將有助於獲得良好的答案;) – 2013-03-19 14:37:24

回答

1

文本框內的字符串值是什麼?

TryParse()將返回一個錯誤,而不是拋出。改爲嘗試。

+0

我不知道你在問什麼,並且勞動= Decimal.Parse(LaborTextBox.Text)將不會運行 – 2013-03-19 14:24:39

+0

@ScottESwingle它應該有可能捕獲的值調試器中的文本字段,或者直接從表單複製粘貼它們。由於無法解析的用戶輸入而發生異常。 – GregC 2013-03-19 15:05:00

1

我覺得GregC的意思是,你需要使用這樣的代碼:

Dim material As Decimal 
If Not Decimal.TryParse(AmountTextBox.Text, material) Then 
    ' the text in AmountTextBox could not be parsed as 
    ' a Decimal. 
    'TODO: do something about it. 
End If 

雖然與許多項目來驗證,您可能能夠通過使用ErrorProvider Class提供更好的用戶體驗。