抛出异常,为什么它必须是静态的?

时间:2014-03-01 18:50:53

标签: java exception static throw

我刚开始学习Java而且我想做一个例外,但我不明白为什么我应该将它命名为static class而不仅仅是class - 否则它将无法编译。有人能解释一下吗?

public class Test
{

  class NrTooSmall extends Exception
  {
  }

  public static void main(String[] args) throws NrTooSmall
  {
    int n = 0;

    try
    {
      n = Integer.parseInt(args[0]);
      if (n < 0)
        throw new NrTooSmall();
    ....

1 个答案:

答案 0 :(得分:0)

代码中存在两个问题:

首先添加catchfinally阻止尝试至少需要任何一个。

第二你不能像这样调用内部类。你需要使用outerclass的对象来调用inner class,如下所示:

OuterClass.InnerClass innerObject = outerObject.new InnerClass();

即抛出如下的异常

throw new Test.new NrTooSmall();