Neden Emma'nın "son olarak" bloklara tam kod kapsamı vermediğini anlamıyorum. Bunu göstermek için kısa bir örnek program yaptım. Ben programı çalıştırmak zamanNiçin Emma son olarak bloklara tam kapsama vermiyor?
gösterir:
try
finally
nihayet kırmızı (yürütülmez) ve "nihayet" "println olarak işaretlenmiş yüzden ben alamadım" (kısmen infaz) sarı işaretlenir . Bir şey mi eksik? Emma nihayet bloğun kaplandığını nasıl anlar?
teşekkür ederiz! kısmen son olarak kapalı blokların konuda Implicit branches due to finally blocks. dokunmadan:
Teşekkür ederiz! Aslında, try bloğu içinde ve istisnasız kodun çalıştırılması, son bloğa tam kapsama sağlar. – stivlo
@stivlo Daha fazlasını açıklayabilir misiniz? – JPM
@JPM Nedeni, aioobe tarafından sağlanan bağlantıda yazılmıştır: * Derleyici, try bloğuna atılmış bir istisna olup olmadığına bakılmaksızın, temizleme kodunun [son olarak blok] her zaman çalıştırıldığından emin olmalıdır. Böylece, son bloğa giden iki olası yol vardır: beklemede ve istisna olmaksızın. * – stivlo