3

我正在尝试创建自己的异常,但遇到了问题...

class MyException extends Exception {
    MyException (String w) { super ( w ); }
};


public class RozkladLiczby{

    private int[] Array;

    RozkladLiczby(int n) throws MyException { 

        try{
            Array = new int[n+2];
        }
        catch(OutOfMemoryException ex){
            throw new MyException ("Not enough memory" );
        }
    }
}

编译器说它在 catch 中找不到符号。

RozkladLiczby.java:16: error: cannot find symbol
    catch(OutOfMemoryException ex){
          ^


 symbol:   class OutOfMemoryException
  location: class RozkladLiczby
1 error
4

3 回答 3

5

那是因为OutOfMemoryException在 Java 中没有;有OutOfMemoryError。如果没有记忆,那你能做什么?没有内存可以创建新的异常。这就是为什么它是一个Error而不是一个Exception

于 2013-03-14T17:10:05.417 回答
0

没有OutOfMemoryException但有OutOfMemoryError

于 2013-03-14T17:10:42.980 回答
0

OutOfMemoryException :- 如果 OutOfMemoryException 是扩展 MyException 的异常,您的自定义异常将被抛出,因为您的自定义异常正在扩展 Exception 类,您的自定义异常不可能在您的 try { } catch() { } 块中被捕获

于 2013-03-14T17:22:26.530 回答