Если я добавлю ловушку выключения в среду выполнения моей Java-программы, например:
public class MyShutdownHook implements Runnable
{
@Override
public void run()
{
// Stuff I want executed anytime
// the program, Java, or the OS exits normally,
// crashes, or terminates unexpectedly for any reason.
}
}
// The in another method...
Runtime.getRuntime().addShutdownHook(new MyShutdownHook());
... тогда будут ли когда-либо ситуации, когда это Метод run ()
не будет выполняться, когда программа / Java / OS завершается нормально, аварийно завершает работу или неожиданно завершает работу? Если да, то в каких ситуациях можно обойти ловушку отключения Runtime
и почему?