JAVA 의 throws 와 throw 를 어떻게 구분 합 니까?

5875 단어 JAVAthrowsthrow
throws 와 throw:
throws:하나의 방법 으로 발생 할 수 있 는 모든 이상 을 설명 하 는 데 사용 합 니 다.어떠한 처리 도 하지 않 고 이상 을 업로드 합 니 다.저 를 호출 하 는 사람 에 게 던 집 니 다.
  •       방법 성명 뒤에 사용 되 는 것 은 이상 유형
  • 이다.
  •       여러 개의 이상 클래스 와 쉼표 로 구분 할 수 있 습 니 다
  •       이상 을 던 지 는 것 을 나타 내 고 이 방법의 호출 자가 처리 합 니 다
  •       throws 는 이상 이 발생 할 가능성 을 표시 합 니 다.반드시 이러한 이상 이 발생 하 는 것 은 아 닙 니 다.
  • throw:구체 적 인 이상 유형 을 던 지 는 데 사 용 됩 니 다.
  •       방법 체 내 에 사용 되 며 이상 대상 명
  • 을 따른다.
  •       이상 대상 명 하나만 던 질 수 있다
  •       이상 을 던 지 는 것 을 나타 내 는 방법 체 내의 문장 처리
  •       throw 는 이상 을 던 졌 고 throw 를 실행 하면 이상 을 던 졌 을 것 입 니 다. 
  • 각각 소개:
        throws 는 방법 뒤에 이상 을 성명 하 는데 사실은 자신 이 이상 에 대해 어떠한 처리 도 하고 싶 지 않 고 다른 사람 에 게 자신 이 발생 할 수 있 는 이상 을 알려 다른 사람 에 게 처리 하 는 것 이다.
    주의:방법 명 뒤에 throws Exception 을 따라 가면 이 방법 에 있 는 문구 에 이상 이 생 길 수 있 음 을 증명 합 니 다.주의 가 가능 합 니 다!다른 곳 에서 이 방법 을 호출 할 때 도 이상 을 던 지 거나 try catch 로 처리 해 야 합 니 다.throws 는 단독으로 사용 할 수 있 습 니 다.
    eg:(코드 예시 01)
    
    public class Test {
      public static void main(String[] args) throws Exception {
        Test test = new Test();
        /***            ,      2   
         * 1、      (         )
         * 2、 try catch       test.compute()
         */
        test.compute();
        
      }
     
      public void compute() throws Exception{
        System.out.println("       ");
        System.out.println("3/0   " +3/0);
      }
    }
    eg:(코드 예시 02)
    
    public class Test {
      public static void main(String[] args){
        Test test = new Test();
        /***            ,      2   
         * 1、    
         * 2、 try catch       test.compute()         (         )
         */
        try {
          test.compute();
        } catch (Exception e) {
          e.printStackTrace();
          System.err.println("     0");
        }
    
      }
    
      public void compute() throws Exception{
        System.out.println("       ");
        System.out.println("3/0   " +3/0);
      }
    }
            throw:이상 을 스스로 처리 하 는 것 입 니 다.두 가지 방법 이 있 습 니 다.자신 이 이상 try..catch 코드 블록 을 캡 처 하거나 이상(throws 이상)을 던 지 는 것 입 니 다.
    eg(코드 예시 01):
    
    package Exception005.usuallyWrong.usuallyWrong01;
    
    import java.util.Scanner;
    
    /**
     *   1:     throws Exception,        try-catch      , if       throw,       ,  2:            
     */
    public class ByoneselfThrow {
      String name;
      String sex;
      int age;
      public void byoneself(){
        Scanner input=new Scanner(System.in);
        System.out.println("       :");
        name=input.next();
        System.out.println("       :");
        age=input.nextInt();
        System.out.println("       :");
        sex=input.next();
        try{
          if(" ".equals(sex)||" ".equals(sex)){
            System.out.println("     "+name+",   "+age+",   "+sex);
          }else{
            throw new Exception("      / !");
          }
        }catch (Exception e){
          e.printStackTrace();
        }
      }
    }
    class Test{
      public static void main(String[] args) {
        ByoneselfThrow center=new ByoneselfThrow();
        center.byoneself();
      }
    }
    eg(코드 예시 02):
    
    package Exception005.usuallyWrong.usuallyWrong01;
    
    import java.util.Scanner;
    
    /**
     *   1:    throws Exception(    ), if       throw(      ),        try-catch         ,       
     *   2:            
     */
    public class ByoneselfThrow {
      String name;
      String sex;
      int age;
      public void byoneself()throws Exception{
        Scanner input=new Scanner(System.in);
        System.out.println("       :");
        name=input.next();
        System.out.println("       :");
        age=input.nextInt();
        System.out.println("       :");
        sex=input.next();
          if(" ".equals(sex)||" ".equals(sex)){
            System.out.println("     "+name+",   "+age+",   "+sex);
          }else{
            throw new Exception("      / !");
          }
    
        }
      }
    class Test{
      public static void main(String[] args) {
        ByoneselfThrow center=new ByoneselfThrow();
        try {
          center.byoneself();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
    eg(코드 예시 03):
    
    package com.xinkaipu.Exception;
     
    public class TestThrow
    {
      public static void main(String[] args) 
      {
        try
        {
          //   throws     ,         
          //  ,   main         
          throwChecked(-3);      
        }
        catch (Exception e)
        {
          System.out.println(e.getMessage());
        }
        //    Runtime               ,
        //        
        throwRuntime(3);
      }
      public static void throwChecked(int a)throws Exception
      {
        if (a > 0)
        {
          //    Exception  
          //       try  ,    throws      
          throw new Exception("a    0,     ");
        }
      }
      public static void throwRuntime(int a)
      {
        if (a > 0)
        {
          //    RuntimeException  ,          
          //          ,              
          throw new RuntimeException("a    0,     ");
        }
      }
    }
    요약:
    throws 는 단독으로 사용 할 수 있 습 니 다.throw 는 안 됩 니 다.try catch 나 throws 를 조합 해 야 합 니 다.프로그램 이 throw exception 문 구 를 실행 하면 뒤의 문 구 는 더 이상 실행 되 지 않 습 니 다.
    이상 은 JAVA 의 throws 와 throw 를 어떻게 구분 하 는 지 에 대한 상세 한 내용 입 니 다.JAVA 의 throws 와 throw 에 관 한 자 료 는 다른 관련 글 에 주목 하 세 요!

    좋은 웹페이지 즐겨찾기