Java中throw和throws的区别


throw和throws都是异常处理的概念,其中throw用于在方法或代码块中显式抛出异常,而throws用于在方法签名中指示该方法可能抛出列出的类型异常。

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

序号关键点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

更新于:2019年9月18日

10K+ 浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告