try return finally

5617 단어 자바
Java 에서 try, return, finally, throw 사용 총화:
 :try {}    return  ,       try  finally {}  code      ,       , return    ? 

    질문 보충:
        ~~  return       ~~         

 
(1)       try 에서 이상 을 던 지고 catch 에 return 문구 가 있 습 니 다. finally 에 return 문구 가 없습니다. 자바 는 catch 에서 return 문 구 를 먼저 실행 한 다음 finally 문 구 를 실행 하고 마지막 으로 catch 에서 return 문 구 를 실행 합 니 다.상황 을 자세히 보다.
(2)       try 에서 이상 을 던 지고 catch 에 return 문구 가 있 으 면 finally 에 도 return 문구 가 있 습 니 다. 자바 는 catch 에서 비 return 문 구 를 먼저 실행 한 다음 finally 에서 비 return 문 구 를 실행 하고 마지막 으로 finally 에서 return 문 구 를 실행 합 니 다. 함수 반환 값 은 finally 에서 돌아 오 는 값 입 니 다.상황 2.
(3)       Throw (catch 가 무능 한 지, catch 가 아 닌 지) 뒤 에는 code 를 따라 갈 수 없습니다. 그렇지 않 으 면 컴 파일 이 통과 할 수 없습니다.아래 상황 을 자세히 보십시오. 셋, 넷, 다섯.
반환, 마지막 으로 총 결:
상황 1. 코드 는 다음 과 같 습 니 다.
public class Test {
public int testTry(){
       FileInputStream fi=null;
      
       try{
           fi=new FileInputStream("");
          
       }catch(FileNotFoundException fnfe){
            System.out.println("this is FileNotFoundException");
            return 1;
       }catch(SecurityException se){
           System.out.println("this is SecurityException");
       }finally{
           System.out.println("this is finally");
       }
       return 0;
}
 
public static void main(String[] args) {
Test t= new Test();
       System. out .println(t.testTry());
}
}
Output :
this is FileNotFoundException
this is finally
1
 
상황 2. 코드 수정 은 다음 과 같다.
public class Test {
public int testTry(){
       FileInputStream fi=null;
      
       try{
           fi=new FileInputStream("");
          
       }catch(FileNotFoundException fnfe){
            System.out.println("this is FileNotFoundException");
            return 1;
       }catch(SecurityException se){
           System.out.println("this is SecurityException");
       }finally{
           System.out.println("this is finally");
             return 3;
       }
      //return 0;
}
 
public static void main(String[] args) {
Test t= new Test();
       System. out .println(t.testTry());
}
}
Output :
this is FileNotFoundException
this is finally
3
----------------------------------------------------
Return throw 요약:
상황 3:
public class Test {
    public static void main(String[] args) {
       Test t=new Test();
       try{
       System.out.println(t.testTry());
       }catch(Exception e){
           System.out.println("this is exception");
       }
      
    }
    public int testTry()throws Exception{
       FileInputStream fi=null;
      
       try{
           fi=new FileInputStream("");
          
       }catch(FileNotFoundException fnfe){
           //System.out.println("this is FileNotFoundException"); 
           throw new Exception();
           return 1;
       }catch(SecurityException se){
           System.out.println("this is SecurityException");
       }finally{
           System.out.println("this is finally");
       }
       return 0;
    }
}
 
>javac Test.java
Test. java: 22: 접근 할 수 없 는 문장
                     Return 1;
 
상황 4:
public class Test {
    public static void main(String[] args) {
       Test t=new Test();
       try{
       System.out.println(t.testTry());
       }catch(Exception e){
           System.out.println("this is exception");
       }
      
    }
    public int testTry()throws Exception{
       FileInputStream fi=null;
      
       try{
           fi=new FileInputStream("");
          
       }catch(FileNotFoundException fnfe){
           //System.out.println("this is FileNotFoundException"); 
           throw new Exception();
           System.out.println("after throw exception");
         //return 1;
       }catch(SecurityException se){
           System.out.println("this is SecurityException");
       }finally{
           System.out.println("this is finally");
       }
       return 0;
    }
}
>javac Test.java
Test. java: 22: 접근 할 수 없 는 문장
                     System.out.println("this is SecurityException");
 
상황 5:
public class Test {
    public static void main(String[] args) {
       Test t=new Test();
       try{
       t.testTry();
       }catch(Exception e){
           System.out.println("this is exception");
       }
      
    }
    public void testTry()throws Exception{
       throw new Exception();
       System.out.println("this is testTry method");
    }
}
>javac Test.java
Test. java: 22: 접근 할 수 없 는 문장
                    System.out.println("this is testTry method");

좋은 웹페이지 즐겨찾기