站长资讯网
最全最丰富的资讯网站

在Java语言中,throw和throws有什么区别

在Java语言中,throw和throws有什么区别

区别分析:

(推荐教程:java入门教程)

throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用就抛给谁。

  • 用在方法声明后面,跟的是异常类名

  • 可以跟多个异常类名,用逗号隔开

  • 表示抛出异常,由该方法的调用者来处理

  • throws表示出现异常的一种可能性,并不一定会发生这些异常

throw:则是用来抛出一个具体的异常类型。

  • 用在方法体内,跟的是异常对象名

  • 只能抛出一个异常对象名

  • 表示抛出异常,由方法体内的语句处理

  • throw表示抛出了异常,执行throw则一定抛出了某种异常

下面我们来分别介绍一下:

throws在方法后边声明异常,其实就是自己不想对异常做出任何的处理,告诉别人自己可能出现的异常,交给别人处理。

代码示例:

package com.xinkaipu.Exception; class Math{     public int div(int i,int j) throws Exception{         int t=i/j;         return t;     } } public class ThrowsDemo {     public static void main(String args[]) throws Exception{         Math m=new Math();    } }

(视频教程推荐:java视频教程)

throw:就是自己处理一个异常,要么是自己捕获异常try…catch代码块,要么是抛出一个异常(throws 异常)。

代码实现:

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,不符合要求");         }     } }

赞(0)
分享到: 更多 (0)