can someone help me how how can catch CTRL C and print it out then stop the program? Thanks
/** * 218-102 Lab 7 * TestCircle.java * * @author JKang & JLeone * */ import java.util.*; import java.awt.event.*; import javax.swing.*; import java.awt.*; public class TestCircleB { public static void main(String [] args) { // read a radius of the circle from command line try { Scanner in = new Scanner (System.in); System.out.print("Enter a circle radius : "); double radius = in.nextDouble(); // Instantiate a Circle object Circle aCircle = new Circle(radius); // Print current status of the circle System.out.println(aCircle); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Array Index Out Of Bounds Exception Occured ..."); } catch (ShapeException e) { System.out.println("Shape Exception Occured ..."); } catch (NumberFormatException e) { System.out.println("Number Format Exception Occurred ..."); } catch (InputMismatchException e) { System.out.println("Input Mismatch Exception Occured ..."); } /* catch (InterruptedException e) { e.printStackTrace(); System.out.println("Input Mismatch Exception Occured ..."); } */ catch(InterruptedException e) { // Restore the interrupted status Thread.currentThread().interrupt(); } } }
you may want to try:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() { /*
my shutdown code here
*/ }
});
should be able to intercept theCTRL C, but only as an intermediate step before the JVM completely shutdowns itself, so it may not be what you are looking for.
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.
You may want to use a SignalHandler (sun.misc.SignalHandler) to intercept the SIGINT signal triggered by a CTRL-C (on Unix as well as Windows).
See here: http://www.ibm.com/developerworks/ibm/library/i-signalhandling/?open&l=409,t=grj,p=jsh and this: http://waelchatila.com/2006/01/13/1137143896635.html