SORU
23 EYLÜL 2010, PERŞEMBE


Özel durum yakalamak ve sonunda fıkra atılmış

Üniversitede Java gelen bir soru üzerine bu kod parçacığı vardı:

class MyExc1 extends Exception {}
class MyExc2 extends Exception {}
class MyExc3 extends MyExc2 {}

public class C1 {
    public static void main(String [] argv) throws Exception {
        try {
            System.out.print(1);
            q();

        }
        catch ( Exception i ) {
            throw( new MyExc2() );
        }
        finally {
            System.out.print(2);
            throw( new MyExc1() );
        }

    }

    static void q() throws Exception {
        try {
            throw( new MyExc1() );
        }
        catch( Exception y ) {
        }
        finally {
            System.out.print(3);
            throw( new Exception() );
        }
    }
}

ve çıkışını vermem istendi. Cevap verdim "iplik 13Exception", fakat doğru cevap "iplik 132Exception". ana MyExc1 ana MyExc2 Neden? Ben sadece nerede MyExc2 :S gidiyor anlayamıyorum

CEVAP
23 EYLÜL 2010, PERŞEMBE


Yanıtınız okuma ve büyük olasılıkla onu görmek dayanarak, sanırım bir "istisna-ilerleme""". önceliğe sahiptir Unutmayın:

Yeni bir özel durum atılırcatch blok veya finally blokBu blok dışında yaymak, sonra da mevcut durum yeni durum dışa doğru yayılır olarak iptal edildi (ve unutmuş). Yeni durum sadece herhangi bir diğer özel durum yığını gibi, geçerli blok (catch veya finally blok) dışında iptal ediliyor ve yürürlükteki yakalamak ya da yol boyunca engeller sonunda tabi gevşemek başlar.

Unutmayıncatch veya finally blok uygulanabiliriçerir:

Yeni bir özel durum catch bloğu içinde atılır, özel durum varsa hala yakalamak nihayet blok tabidir.

Şimdi yürütme, throw, çarptığın zaman geçerli durum izlemeyi iptal et ve yeni bir Özel Durum İzleme ile başlaması gerektiğini hatırlayarak tekrar düşün.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jose LviS el Bambino ( JLB )   LviSito

    Jose LviS el

    3 ŞUBAT 2008
  • cyriak

    cyriak

    29 Mart 2006
  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010