Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (487)
Games in Android Showcase (110)
games submitted by our members
Games in WIP (552)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  OutOfMemoryError, how to catch?  (Read 1229 times)
0 Members and 1 Guest are viewing this topic.
Offline Sequalit

Junior Member





« Posted 2006-12-16 02:56:48 »

In my application, whenever I load this one file I always get a OutOf MemoryError, java heap space...

I know why, its becasue the image is 4000pixels by 4000pixels...

Which i know i have no real reason to load this, but how would i catch this error so that i can keep the program running smoothly?

while(gettingTired())
     crankOutMoreCode();
     if(asleep()){
          wakeUp();
          makeCoffee();
          chugCoffee();
     }
}

-Sequalit
Offline crazyc94

Senior Newbie




I like cheese


« Reply #1 - Posted 2006-12-16 07:13:25 »

Try something like this:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
try
{
    File f = ....
    ...... //Load file in here
   ......
}
catch (OutOfMemoryError e)
{
    e.printStackTrace();
}

Quack!  I'm a duck!

"Or make your own RationalNumber class (unless you need irrational numbers, then you're screwed )." - shmoove
Offline erikd

JGO Ninja


Medals: 16
Projects: 4
Exp: 14 years


Maximumisness


« Reply #2 - Posted 2006-12-16 09:59:17 »

You can't cleanly catch an OutOfMemoryError, or any Error. That's the difference between an Error and an Exception.

EDIT:
The only thing you can do is *prevent* an OOME from happening by:
1) Increase the maximum heap space to what your program needs by using the -Xmx parameter.
2) Make sure you are not having an object leak (keeping references to unused objects by mistake, typically in Collections).

Your image will take about 64Mb of memory. Are you sure you really need such a huge image? If loading such a large image is absolutely necessary for your program, just increase the max heap size with -Xmx.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Sequalit

Junior Member





« Reply #3 - Posted 2006-12-16 22:43:40 »

well... like i said, in reality there shouldnt be any reason for the person to try to load a image that size...
Is there some way I can scan the file before it loads it into the system?

Like a way to view the size of the file, and if it is over the heap size, dont allow the user to upload the file?

Is there a way to call -Xmx from within the program, or does this have to be done at the batch file before the program starts?

while(gettingTired())
     crankOutMoreCode();
     if(asleep()){
          wakeUp();
          makeCoffee();
          chugCoffee();
     }
}

-Sequalit
Offline erikd

JGO Ninja


Medals: 16
Projects: 4
Exp: 14 years


Maximumisness


« Reply #4 - Posted 2006-12-17 11:03:25 »

Quote
Like a way to view the size of the file, and if it is over the heap size, dont allow the user to upload the file?

You can use File.length() for that and the methods in Runtime.getRuntime().

Quote
Is there a way to call -Xmx from within the program, or does this have to be done at the batch file before the program starts?
You can't change the max heap space from within the program. You can only set it using the -Xmx VM argument.

I also came across an interesting article about this matter that might be of use:
http://www.roseindia.net/javatutorials/OutOfMemoryError_Warning_System.shtml

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

CopyableCougar4 (23 views)
2014-08-22 19:31:30

atombrot (34 views)
2014-08-19 09:29:53

Tekkerue (30 views)
2014-08-16 06:45:27

Tekkerue (28 views)
2014-08-16 06:22:17

Tekkerue (18 views)
2014-08-16 06:20:21

Tekkerue (27 views)
2014-08-16 06:12:11

Rayexar (65 views)
2014-08-11 02:49:23

BurntPizza (41 views)
2014-08-09 21:09:32

BurntPizza (31 views)
2014-08-08 02:01:56

Norakomi (41 views)
2014-08-06 19:49:38
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!