import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class ExceptionApplet extends Applet implements ActionListener
{ Label L1,L2;
TextField tf1,tf2;
String answerStr;
double d1,d2;
public void init( )
{ L1=new Label("请输入0到100之间的整数");
add(L1);
tf1=new TextField(6);
add(tf1);
tf2=new TextField(6);
add(tf2);
L2=new Label("两数相除的结果: ");
add(L2);
tf1.addActionListener(this);
tf2.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{ try
{ d1=Double.valueOf(tf1.getText( )).doubleValue( );
d2=Double.valueOf(tf2.getText( )).doubleValue( );
// valueOf(String s) 可能抛出异常 NumberFormatException
L2.setText("两数相除的结果: "+Result( ));
// 调用 Result( ) 方法可能抛出 NumberRangeException 异常
}
catch(NumberFormatException e)
{ answerStr="输入的必须是数字";
L2.setText(answerStr);
}
catch(NumberRangeException ee)
{ answerStr=ee.getMessage( );
L2.setText(answerStr);
}
repaint( );
}
public double Result( ) throws NumberRangeException
{ double answer=0;
try
{ if((d1<0)||(d2<0)||(d1>100)||(d2>100))
{ NumberRangeException ee=new NumberRangeException("输入的数字不在指定的范围!请重新输入。");
throw ee;
}
answer=d1/d2;
}
catch(ArithmeticException eee)
{ answerStr=eee.toString( );
}
return answer;
}
}
class NumberRangeException extends Exception
{ NumberRangeException(String msg)
{ super(msg); }
//子类调用父类的带参数的构造函数
}
评论0
最新资源