Bir istisna atmak ve sadece baskı hatası yapmak için onu yakalamak yeterli midir?İstisnalar - Hemen atın ve yakalayın
if(...){
} else {
try{
throw new Exception();
} catch (Exception e){
e.printStackTrace();
}
}
Bir istisna atmak ve sadece baskı hatası yapmak için onu yakalamak yeterli midir?İstisnalar - Hemen atın ve yakalayın
if(...){
} else {
try{
throw new Exception();
} catch (Exception e){
e.printStackTrace();
}
}
atmak-ve-yakalamak için gerek yok, sadece çağırabilir
Thread.dumpStack();
Ayrıca, bir güncel iplikten yığın izleme alabilirsiniz dizi:
StackTraceElement[] trace = Thread.currentThread().getStackTrace();
Yığını çalışma zamanında incelemek gibi daha ayrıntılı bir şey yapmak isterseniz (örn. e çağrı yönteminin adı.
Ben açıkça (catch bloğuna) bir LOGGER bir günlük dosyasına özel durum göndermek istemeniz durumunda yararlı olabilir, ya da bir especific bir şekilde kayıt olabileceğini düşünüyorum.
new Exception().printStackTrace();
ya da kolay:
Bu nedenle e.printStackTrace() işlevi mantıklıdır, çünkü bu işlem günlüğe kaydeder mi? –
Hayır, bu işlem günlüğüne iz bırakmaz, ancak Logger.error ("Hata:", e) gibi bir şeyle catch bloğunuzu değiştirebilir, bu istisnayı Logger dosyanıza kaydettirebilirsiniz. – Wakachopo
Sanırım bu duruma bağlı. İstisnalar atmanın pahalı olduğunu ve sadece bir kullanıcıya bir hata mesajı yazdırıyorsanız, basit bir 'System.err.println (...)' yeterli olabilir. –