Java 中 throw 和 throws 的区别

java 8object oriented programmingprogramming更新于 2024/11/8 7:09:00

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

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

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

throw 与 throws 的示例

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

相关文章