Spring'in @Async
ek açıklamasını kullanırken, bu yöntem, yöntemin throws
maddesindeki istisnalar (kontrol edilen) söz konusu olduğunda sızıntıya neden olur. Derleyici arayanı istisna işlemeye zorlar, ancak gerçekte arayan kişi asla @Async
yöntemi tarafından atılan istisnaları görmez. Bunun yerine, uygulamaya bağlı olarak, & Spring tarafından kaydedilen veya kullanıcı tarafından yapılandırılan bir özel durum işleyicisine verilen veya döndürme değerinde Future#get()
çağrıldığında üretilecek. Bu nedenle, @Async
yöntemlerinin kural olarak hiçbir zaman denetimli istisnalar atmaması gerektiği fikrini oluşturuyorum. Bunun yerine, tüm denetlenen özel durumları RuntimeException
türünde sarmalı ve böylece throws
yan tümcesi bulunmamalıdır.Spring @Async soyutlama, istisna işlemiyle ilgili sızıntı içeriyor
Bu doğru bir değerlendirme mi? Sızıntıyı düzelten herhangi bir takım veya programlama yaklaşımı var mı? Bahar geliştiricilerinin bunun hakkında ne düşündüğünü veya durumu iyileştirmek için herhangi bir plan varsa ne olur? Teşekkürler!
Muhtemelen related: Spring Async method hides exceptions
konuşan, Bahar kontrolsüz istisnalar (Bahar Veri istisna çeviri bakmak) tercih eder ve bir gerçekten mümkün değil bir şey atmak için async yöntemi (bu yüzden 'Future' istisnaları sarar). – chrylis
Gerçek sorun, @ Async'ed yönteminiz herhangi bir değer döndürmediğinde başlar. Bazı ilginç şeyler o zaman olur;) –
Özellikle ilginç şeyler nelerdir, R4J? – Jukka