2013-03-14 23 views
3

我试图创建自己的异常,但遇到了一个问题...我自己的异常在Java中 - 找不到符号

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"); 
     } 
    } 
} 

编译器说,它无法在抓查找符号。

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


symbol: class OutOfMemoryException 
    location: class RozkladLiczby 
1 error 
+4

请发布完整的错误 – thegrinner 2013-03-14 17:09:20

回答

5

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

0

OutOfMemoryException: - 如果OutOfMemoryException异常是是一个例外延长MyException您的自定义异常会被抛出,因为您的自定义异常扩展Exception类有没有机会,您的自定义异常将被捕获在您的try {} catch(){}块