içinde çalışma zamanı istisnasını atın OCPJP8'deki çalışmalarım sırasında bana çok açık bir cevabı olmayan bir soruyla karşılaştım. Bir soru için kitap doğru cevaba göreClosable.close()
public class Animals
{
class Lamb implements Closeable
{
public void close()
{
throw new RuntimeException("a");
}
}
public static void main(String[] args)
{
new Animals().run();
}
public void run()
{
try (Lamb l = new Lamb();)
{
throw new IOException();
}
catch (Exception e)
{
throw new RuntimeException("c");
}
}
}
: Aşağıdaki kodu düşünün "Hangi istisna olacak kod atmada?" "bastırılma özel durum hariç çalışma zamanı istisnası" dir. Bu kodu Eclipse ve system.out içinde kontrol ettim, kitabın doğru olduğunu öneriyorum. Ancak, ben de kod biraz değiştirilmiş ve sadece RuntimeException "c"
System.out.println(e.getSuppressed().toString());
ve ben bu System.out gelen var çıkışını atmadan önce aşağıdaki System.out ekledik geçerli:
[Ljava.lang.Throwable; 75da931b
@ Yani açıkça bir bastırılmış istisna vardır. Hata ayıklama modunda, bu bastırılmış özel durumun close() yönteminde kaşındığını buldum.
İki soru: 1. Neden konsolda close() yöntemine eklenen istisna hakkında bilgi yok? 2. Kitap tarafından verilen cevap doğru mu?
Bir yan not olarak, daha anlamlı bir çıktı almak için 'System.out.println (Arrays.toString (e.getSuppressed())); – Holger