我自己在java中的异常 - 找不到符号

时间:2013-03-14 17:08:35

标签: java exception

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

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

没有 OutOfMemoryException ,但有OutOfMemoryError

答案 2 :(得分:0)

OutOfMemoryException: - 如果OutOfMemoryException是一个扩展MyException的Exception,那么你的自定义异常就会被抛出,因为你的自定义异常正在扩展Exception类,你的自定义异常不会被你的try {}抓住catch(){}阻止