Yapacağımdan emin değilim (JavaDoc verildiğinde neden tereddüt ettiğimi söyleyemedim), ancak üzerinden Throwable
ekleyebileceğiniz bastırılmış istisnaların listesi var addSuppressed
. JavaDoc, bunun yalnızca JVM'nin kaynaklarla denemede kullanacağı anlamına gelmiyor:
Belirtilen istisnayı, bu istisnayı sağlamak için bastırılmış istisnalara ekler. Bu yöntem iş parçacığı için güvenlidir ve genellikle try-with-resources deyimi tarafından (otomatik ve örtük olarak) çağrılır.
Bastırma davranışı bir kurucu aracılığıyla devre dışı bırakılmadığı sürece etkinleştirilir. Bastırma devre dışı bırakıldığında, bu yöntem argümanını doğrulamaktan başka bir şey yapmaz.
Bir istisna başka bir istisnaya neden olduğunda, ilk istisnanın genellikle yakalandığını ve ardından ikinci istisnanın yanıt olarak atıldığını unutmayın. Başka bir deyişle, iki istisna arasında nedensel bir bağlantı vardır. Buna karşılık, kardeş kod bloklarında, özellikle kaynaklarla deneme ifadesinin try bloğunda ve derleyici tarafından oluşturulan ve kaynağı kapatan nihayet bloğunda iki bağımsız istisnanın atılabileceği durumlar vardır. Bu durumlarda, atılan istisnalardan sadece biri yayılabilir. Kaynaklarla deneme ifadesinde, bu tür iki istisna olduğunda, try bloğundan kaynaklanan istisna yayılır ve nihayet bloğundan istisna try bloğundan istisna tarafından bastırılan istisnalar listesine eklenir. İstisna yığını gevşetirken,
Bir istisna, başka bir istisnanın neden olduğu istisnaları bastırmış olabilir. Bir istisnanın bir nedeni olup olmadığı, bir istisnanın tipik olarak yalnızca bir istisna atıldıktan sonra belirlenen diğer istisnaları bastırıp bastırmayacağından farklı olarak, yaratılış sırasında anlamsal olarak bilinir.
Programcı yazılı kodunun, birden fazla kardeş istisnası olan ve yalnızca bir tanesinin yayılabileceği durumlarda bu yöntemi çağırmanın avantajlarından da yararlanabileceğini unutmayın.
Durumunuza uygun görünen son paragrafa dikkat edin.
AggregateException
istisnalar listesi içerir. Bu fikir Java için de geçerli olmalıdır.