2016-04-03 17 views
-1

herkes nasıl nihayet yine bir özel duruma, yürütülecek söyleyebilir ve yakalamak System.exitçağrı nihayet sistem çıkışından hemen önce

try { 
} catch (Exception e) { 
    System.exit(0); 
} finally { 
    System.out.println("closing the conn"); 
} 
+0

[ 'Runtime.getRuntime() .addShutdownHook (Konu)'] (http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html #addShutdownHook (java.lang.Thread)). [burada] belirtildiği gibi (https://stackoverflow.com/questions/5747803/running-code-on-program-exit-in-java) – JorgeGarza

cevap

0

System.exit (çağırıyor Sonunda yazdığınız gibi bloke edin.

Bunu yapmanın bir yolu, catch bloğunda bir hata yaptığınızı ve ardından son blokta çıkış yaptığınızı unutmamaktır.

Bunu yapmanın başka bir yolu, JVM'nin çıkarken çağrılacak bir kapatma kancası eklemektir.

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { 
    @Override 
    public void run() { 
     System.out.println("Do your shutdown stuff here"); 
    } 
})); 

try { 
    // bla bla blah  
} catch (Exception e) { 
    System.exit(0); 
} finally { 
} 
Ayrıca kullanabilirsiniz
+0

Yazmak sorun değil, ama kodu değiştirdiğimizi düşünüyorum, orada değil Bağlantıyı sonlandırmadan önce bir bağlantıyı kapatmanın bir yolu – Prashant

+0

yakalamak için { connection.open() } catch (Özel durum e) { System.exit (0); } nihayet { System.out.println ("bağlantının kapatılması"); bağlantı.close() } – Prashant

+0

@ user3431510. Kısa cevap hayır. Cevabımı düzenledim ve size olası bir çözüm daha verdim. – JJF

İlgili konular