views:

188

answers:

3

I need to catch that exception but I can't figure out which one it is. The IDE i'm using right now doesn't allow for a program interrupt that way.

I know how to user try/catch, but I don't actually know what I'm trying to catch..

Can anyone help me with this?

+1  A: 

Sounds like you need Runtime.addShutdownHook()

Registers a new virtual-machine shutdown hook.

The Java virtual machine shuts down in response to two kinds of events:

  • The program exits normally, when the last non-daemon thread exits or when the exit (equivalently, System.exit) method is invoked, or

  • The virtual machine is terminated in response to a user interrupt, such as typing ^C, or a system-wide event, such as user logoff or system shutdown.

I'm not sure if you can actually catch it as such, you just supply a Thread to be run when the VM is shutting down. I don't think you can stop it once this kicks off.

skaffman
A: 

addShutdownHook() is what you want.

http://www.esus.com/javaindex/j2se/jdk1.2/javalang/trapctrlc.html

Jim Blackler
+2  A: 

I seem to recall that CTRL-C becomes an InterruptedException and this article seems to support that. As suggested in other answers the use of addShutdownHook is a good way to go, unless you want to prevent the shutdown.

torak
while addShutdownHook() worked, I the InterruptedException was more general so I used it. Thanks!
Phil