【问题标题】:Throwing an exception, why does it have to be static?抛出异常,为什么它必须是静态的?
【发布时间】:2014-03-01 18:50:53
【问题描述】:

我刚开始学习 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();
    ....

【问题讨论】:

  • 了解内部类。
  • 谢谢 :) 会继续阅读的。
  • 如果您刚开始学习 Java,请不要使用嵌套类。坚持基本原则:每个类 Foo 都定义在自己的文件 Foo.java 中。嵌套类稍后会出现。将异常定义为嵌套类并不是一个好主意。

标签: java exception static throw


【解决方案1】:

代码中存在两个问题:

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

其次不能这样调用内部类,需要使用outerclass的对象来调用inner class,如下:

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

即抛出如下异常

throw new Test.new NrTooSmall();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-27
    • 2010-10-15
    • 2012-04-11
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多