2014-04-21 5 views
-6
try { 
    statement 1 // executing successfully 
    statement 2 // Exception Occured 
    statement 3 // Skip Execution 
} catch(Exception e) { 
    e.printstacktrace(); 
} finally { 
    statement 4 
} 

위의 코드는 trycatch 블록의 기본입니다. 여기에 st2가 실패하면 st3이 실행될 것입니다. st2가 실패한 후 st3을 실행할 수있는 방법이 있습니까 ??자바에서 tryCatch 블록

인터뷰 중 하나 Java
+4

"st2가 실패하면 st3이 * * - 아니요를 실행하려고합니다. 명령문 2가 예외와 함께 실패하면 명령문 3은 ** 실행되지 않습니다 **. –

+1

항상 실행되도록하려면 finally 블록으로 이동하고, 예외 발생시에만 실행하려면 블록을 catch하십시오. – songyuanyao

답변

0

아니요. Java는 코드를 한 줄씩 읽습니다. 따라서 s2가 실패하면 catch 블록으로 이동합니다. 어쨌든 s4는 어쨌든 실행됩니다. 따라서 s3을 가져 와서 s2가 실행되는 곳을 막을 수 있습니다.

try{ 
    statement 1 // executing successfully 
    statement 2 // Exception Occured  
}catch(Exception e){ 
    e.printstacktrace(); 
}finally{ 
    statement 3 // Skip Execution 
    statement 4 
} 

위의 예에서는 S3이 실행됩니다.

try{ 
    statement 1 // executing successfully 
try{ 
    statement 2 // Exception Occured 
}catch(Exception e){ 
} 
    statement 3 // Skip Execution 
}catch(Exception e){ 
    e.printstacktrace(); 
}finally{ 
    statement 4 
} 

위의 예에서도 S3가 실행됩니다.

2

서라운드 문 2에 또 다른 try catch 블록이 있습니다. 이 경우 Statement 2가 fauled 된 후에도 Statement 3이 실행됩니다. 명령문 2가 실패한 후에 만 ​​명령문 3을 실행하려는 경우. Statemnt 3을 catch 블록으로 이동하십시오.

0

Java 예외 처리를주의 깊게 읽으십시오. 복잡한 것은 아닙니다.