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

  • DrakeVEVO

    DrakeVEVO

    17 AĞUSTOS 2009
  • ibebrent

    ibebrent

    23 Temmuz 2007
  • NYLON Video

    NYLON Video

    11 Aralık 2006