Java中的throw和throws之间的区别

throw和throws都是异常处理的概念,其中throw用于显式地从方法或任何代码块中引发异常,而throw在方法的签名中用于指示此方法可能抛出列出的类型之一例外。

以下是throw和throws之间的重要区别。

序号抛出
1定义Throw是一个关键字,用于在函数内或代码块内的程序中显式抛出异常。Throws是方法签名中用于声明异常的关键字,该异常可能在执行代码时由函数抛出。
2内部实施在内部实现了throw,因为它一次只能抛出一个异常,即我们不能使用throw关键字抛出多个异常。另一方面,我们可以使用throws关键字声明多个异常,而使用throws关键字的函数可能会抛出该异常。
3例外类型使用throw关键字,我们只能传播未检查的异常,即,不能使用throw传播检查的异常。另一方面,可以使用throws关键字声明已检查和未检查的异常,并且对于传播检查的异常,必须使用throws关键字后跟特定的异常类名称。
4语法语法明智的throw关键字后跟实例变量。另一方面,语法明智的throws关键字后跟异常类名称。
5声明为了使用throw关键字,我们应该知道在方法中使用了throw关键字。另一方面,throws关键字与方法签名一起使用。

掷vs掷示例

JavaTester.java

public class JavaTester{
   public void checkAge(int age){
      if(age<18)
         throw new ArithmeticException("Not Eligible for voting");
      else
         System.out.println("Eligible for voting");
   }
   public static void main(String args[]){
      JavaTester obj = new JavaTester();
      obj.checkAge(13);
      System.out.println("End Of Program");
   }
}

输出结果

Exception in thread "main" java.lang.ArithmeticException:
Not Eligible for voting
at JavaTester.checkAge(JavaTester.java:4)
at JavaTester.main(JavaTester.java:10)

示例

JavaTester.java

public class JavaTester{
   public int division(int a, int b) throws ArithmeticException{
      int t = a/b;
      return t;
   }
   public static void main(String args[]){
      JavaTester obj = new JavaTester();
      try{
         System.out.println(obj.division(15,0));
      }
      catch(ArithmeticException e){
         System.out.println("You shouldn't divide number by zero");
      }
   }
}

输出结果

You shouldn't divide number by zero