2011-04-20 15 views
7

çağırmadı, Muhabir Yanında yazılmış bir koda sahip olduğunu .. bana sorulanbir röportaj

try 
{ 
//code line 1 
//code line 2 
//code line3 -- if error occur on this line then did not go in the catch block 
//code line 4 
//code line 5 
} 
catch() 
{ 
    throw 
} 

gibi dene ve yakala bloğu biz kod üzerinde bir hata var herhalde satır 3 sonra bu catch bloğu içinde gitmeyecek ama hattı 3 dışında başka hat üzerinde hata oluşması halinde bu

hata belirli bir hat üzerinde meydana gelirse o zaman gitmek olmadığını bu mümkün catch bloğu içinde gitmek yakalama bloğunda mı?

+2

fişini an hattı 3'te bilgisayarınızdan güç akor yürütülür :) – Jan

+0

OOM ve SO istisnalar yakalamak için (imkansız?) Zordur. –

+0

Gerçek görüşme sorusu neydi? Nasıl yapılır, 3. hat, catch bloğunun girilmesine neden olmaz, ya da bu kod verilirse, catch 3'ün herhangi bir şeyi yakalamasını engelleyecek bir şey olabilir mi? –

cevap

3

Başka try/catch bloğunda hattı 3 sarabilirdiniz:

try 
{ 
    //code line 1 
    //code line 2 
    try 
    { 
     //code line3 -- if error occur on this line then did not go in the catch block 
    } 
    catch { } 
    //code line 4 
    //code line 5 
} 
catch() 
{ 
    throw; 
} 

Ayrıca Görüşmeci hata tanımlanmış olması gerekir. Bir hata olarak bir istisna bahsettiği çok anlama gelebilir => berbat kod, istisna, beklenen kodu olarak çalışmıyorsa ...

+0

Cevabımı sildim. ThreadAbortException 'yakalanabilir ancak catch bloğunun sonunda tekrar yükseltilir. – Aliostad

+0

Reddetmenin herhangi bir nedeni var mı? Lütfen aşağı çekerken bir yorum bırakın. –

+1

Oy kullanmadım, burada karışıklık yok. ama yine de senin ans'ına yorum yapmak istedim. Senin ans hala istisnayı yakalamadığını açıklığa kavuşturmuyor. çözüm sit1 parametresi ile catch() ise çalışmaz. – Priyank

3

Eğer 3 nedenleri non CLS-compliant exceptions hattı, bu birlikte catch'ed olmayacak parametreli catch() bloğu. Her tür istisnayı yakalamak için, parametresiz yakalama bloğunu kullanın.

try 
{ 
// Statement which causes an exception 
} 

catch //No parameters 
{ 
//Handles any type of exception 
} 

.net Exception catch block

0

Kısa Cevap: Evet

bir catch bloğu almazsınız hatalar var. Bellek hatası yüzünden düşünüyorum. Bir Özel durumun bir bloğu atlayabilmesinin bir başka yolu, atılan hatanın tanımladığınızlardan biri olmamasıdır.

İlgili konular