2016-03-25 31 views
2

Geçenlerde bu soruyu sorulan bir şirketin bir görüşme sürecinden geçti A(), B() ve C(); olarak akışı:Çalışma zamanı istisnaları bir yöntem zincirinde nasıl kullanılır? Üç yöntem vardır</p> <p>Diyelim:

A(){ 
    B(); 
} 

B(){ 
    C(); 
} 

and 
C() 
{ 
      // The code here may throw runtime exception. 
} 

Şimdi, ana yöntem olarak, yöntem A (adlandırılır) ve bir özel C oluştu(). Yani sorular bu durumun nasıl ele alınacağıydı? Aklıma gelen ilk çözüm, anahtar kelimeyi ve A() yönteminin içinde kullanabileceğimiz, try-catch bloğunu uygulayabilmemizdi.

Ancak görüşmeci memnun görünmüyordu ve beklediğim cevabı vermediğim durum söz konusu olabilir.

Bu konuda bana yardımcı olan var mı?

+0

Teknik Mülakat Sorular dahilinde her işlevini çağırabilirsiniz :) –

cevap

0

Devam etmekte olan işte, 2 seçeneğiniz var.

1) ebeveyn arayan A() için ulaşıncaya kadar yakalamak denemek ve arayana Sadece throw yeniden C()

veya

2) yönteminde gerekli adımları yapmak demektir olayı yerinde, Kulp Böylece durumu ele alır.

0

Bence sadece ben hiç Rumtime durumları işlemeye yok demek derleyici hata atmak, nedeni

altındadır let çalışma zamanı özel kurtarmak için her şeyi yapmaya değil Runtime istisnalar/kontrolsüz yana istisnalar, sıfıra bölme gibi bir programlama probleminin sonucu olan problemleri temsil eder; null referansı ile bir nesneye erişmeye çalışmak; Bir istemci makul bir özel kurtarmak beklenebilir ise ve indeksleme istisnalar

According to Java doc

.. çok büyük veya çok small..etc olan bir dizin aracılığıyla bir dizi elemanı erişmeye çalışan , kontrol edilmiş bir istisna yapın. Bir istemci, istisnadan kurtarmak için herhangi bir şey yapamazsa, bunu denetlenmeyen bir istisna haline getirin.

0

Bu sizin ihtiyaç bağlı

1 yaklaşımı bağlıdır: - Her işlevin imzası ile İstisna Tipi bildirebilirsiniz. örn.

A() throws ExceptionType 
{ 
    B(); 
} 


B() throws ExceptionType{ 
    C(); 
} 

and 
C() throws ExceptionType 
{ 
      // The code here may throw runtime exception. 
} 

2 Yaklaşım: -

try 
    { 
    a(); 
    }catch(ExceptionType){} 
A(){ 
    B(); 
} 

B(){ 
    C(); 
} 

and 
C() 
{ 
      // The code here may throw runtime exception. 
} 

3 Yaklaşım: - hep temellerini HIT

try 
{ 
//Function Calling 
}catch(ExceptionType){//handeling code}