We all understand that the finally block will 'always' run regardless of the outcome of the try catch block. However there is one exception if System.exit(0) is called, the finally will not run. I was wondering if anyone knew if an 'out of memory' error would also cause the finally to be ignored. I have looked through the API to no avail.
No, the finally block won't be ignored; it will execute. Be careful what you do in the finally block though, as the program could throw a new exception from the finally block. If memory is scarce already, then if you do something which attempts to use more memory, that could cause a new OOME (replacing the old one).