I have a code which generates the following exception:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at edu.createArrays(ExhaustivePCFGParser.java:2188)
at edu.considerCreatingArrays(ExhaustivePCFGParser.java:2158)
at edu.ExhaustivePCFGParser.parse(ExhaustivePCFGParser.java:339)
at edu.LexicalizedParserQuery.parse(LexicalizedParserQuery.java:247)
at edu.LexicalizedParser.apply(LexicalizedParser.java:283)
at current.Gen.textParsen(Gen.java:162)
at current.Gen.gen(Gen.java:90)
at current.Foo.main(Foo.java:120)
I tried to catch it with the following code:
try {
// this is the line which cause the exception
LinkedList<Foo> erg = Gen.gen(rev);
} catch (Exception e) {
System.out.println("exception: out of memory");
}
but when I run the code the exception is not caught. How to solve this?
Because that's not an Exception
but an Error
.
You could catch it as a Throwable
} catch (Throwable e) {
or specifically as Error
} catch (Error e) {
But there's not a lot you can do with such an error, apart trying to close the application in the cleanest way you can.
From the javadoc :
An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With