我有一个简单的程序来从串口读取数据并将其放在文本框中。之后,我想获取该数据并对其执行其他操作(比较它等)。收到的数据放在文本框中,但是当我使用Convert.Int32(textbox.Text)将其转换为整数时,程序会出错。任何帮助深表感谢。这是我的代码部分:
try
{
textBox1.Text = serialPort1.ReadExisting();
int x = Convert.ToInt32(textBox1.Text);
switch (x)
{
case 1: textBox17.Text = "Received Number is 1"; break;
case 2: textBox18.Text = "Received Number is 2"; break;
case 3: textBox19.Text = "Received Number is 3"; break;
}
}
catch (TimeoutException)
{
label1.Text = "Timeout Exception";
}
答案 0 :(得分:0)
你不写
int x=textbox1.Text
因为在字符串和整数之间不能implicitly convert。您有一个未处理的异常,因为您只有一个catch
块,只能捕获TimeoutException
类型的异常。问题是你有FormatException
类型的例外,因为没有catch
块可以捕获这种类型的异常,所以异常将上升到堆栈并解除它直到有适当的catch块。
现在对于FormatException
:有很多原因可以获得类型FormatException
的异常,但一般原因是Convert
方法无法将字符串内容转换为整数价值,因为它的格式不正确! Here您可以发现,如果字符串中有小数点,您将收到此类错误。所以你的问题出在你读过的字符串中。