import java.awt.*;
import java.applet.*;
public class userin extends Applet
{
TextField text1, text2;
public void init( )
{
text1 = new TextField(8);
text2 = new TextField(8);
add (text1);
add (text2);
text1.setText ("0");
text2.setText ("0");
}
public void paint (Graphics g)
{
int x = 0, y = 0, z = 0;
String s1, s2, s;
g.drawString("input a number in each box", 10, 50);
try
{
s1 = text1.getText( );
x = Integer.parseInt(s1);
s2 = text2.getText( );
y = Integer.parseInt(s2);
}
catch (Exception ex) { }
z = x + y;
s = String.valueOf (z);
g.drawString ("THE SUM IS:", 10, 75);
g.drawString (s, 100, 75);
}
public boolean action (Event event, Object object)
{
repaint ( );
return true;
}
}下面的代码在windows上运行得很好,并给出了2个数字的总和,但当我在Netbeans或Eclipse中的mac上使用它时,代码运行,但sum始终为0。我不知道是什么导致了这个问题,如果有人能帮上忙,那就太好了。
发布于 2016-03-05 00:26:08
可能导致这种情况的唯一原因是在try代码块中抛出的异常,因为您捕获了一个忽略:
try {
.......
} catch (Exception e) {}编写空的catch块是非常糟糕的做法,因为您实际上是在对自己隐藏问题。
首先,完全删除你的try/catch或者打印异常:
try {
...........
} catch (Exception e) {
e.printStackTrace();
}现在您将看到您的问题所在。我猜这是Integer.parseInt()抛出的NumberFormatException,它是由错误的用户输入引起的。
我相信这不是在不同平台上的不同行为的问题,而是你在每个测试中输入的不同输入的问题。
https://stackoverflow.com/questions/35800742
复制相似问题