D:\My_java>javac ExceptionApplet.java
D:\My_java>appletviewer test.htm
java.lang.NullPointerException
        at java.awt.Container.addImpl(Container.java:621)
        at java.awt.Container.add(Container.java:307)
        at ExceptionApplet.init(ExceptionApplet.java:15)
        at sun.applet.AppletPanel.run(AppletPanel.java:354)
        at java.lang.Thread.run(Thread.java:534)源码如下:
//test.htm
<html>
<applet code=ExceptionApplet.class width=300 height=150>
</applet>
</html>
//ExceptionApplet.java
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(tf2);
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();
L2.setText("两数相除的结果:"+Resule()); 
}
catch(NumberFormatException e)
{
answerStr="输入的必须是数字!";
L2.setText(answerStr);
}
catch(NumberReangException ee)
{
answerStr=ee.getMessage();
L2.setText(answerStr);
}
repaint();
}
public double Resule()throws NumberReangException
{
double answer=0;
try
{
if((d1<0)||(d1>100)||(d2<0)||(d2>100))
{
NumberReangException ee=new NumberReangException
("输入的数字不在指定的范围!请重新输入。");
throw ee;
}
answer=d1/d2;
}
catch(ArithmeticException eee)
{answerStr=eee.toString();}
return answer;
}
}
 class NumberReangException extends Exception
{
NumberReangException(String msg)
{super(msg);}
}

解决方案 »

  1.   

    tf1=new TextField(6);
    -->add(tf2);这个写错了吧,应为add(tf1),这个时候tf2还是null值的,故报错
      

  2.   

    public void init()
    {
    L1=new Label("请输入0到100之间的整数!");
    add(L1);
    tf1=new TextField(6);
    add(tf2);                  /*这个时候tf2还没初始化,添加的是一个空指针*/
    tf2=new TextField(6);
    add(tf2);
    L2=new Label("两数相除的结果:");
    add(L2);
    tf1.addActionListener(this);
    tf2.addActionListener(this);
    }