java异常处理的throw和throws的区别

1. 区别

throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。

2.分别介绍

throws:用于声明异常,例如,如果一个方法里面不想有任何的异常处理,则在没有任何代码进行异常处理的时候,必须对这个方法进行声明有可能产生的所有异常(其实就是,不想自己处理,那就交给别人吧,告诉别人我会出现什么异常,报自己的错,让别人处理去吧)。

格式是:方法名(参数)throws 异常类1,异常类2,.....

 1 class Math{
 2       public int div(int i,int j) throws Exception{
 3           int t=i/j;
 4           return t;
 5       }
 6  }
 7
 8 public class ThrowsDemo {
 9       public static void main(String args[]) throws Exception{
10           Math m=new Math();
11           System.out.println("出发操作:"+m.div(10,2));
12      }
13  }

throw:就是自己进行异常处理,处理的时候有两种方式,要么自己捕获异常(也就是try catch进行捕捉),要么声明抛出一个异常(就是throws 异常~~)。

注意:

throw一旦进入被执行,程序立即会转入异常处理阶段,后面的语句就不再执行,而且所在的方法不再返回有意义的值!

 1 public class TestThrow
 2 {
 3     public static void main(String[] args)
 4     {
 5         try
 6         {
 7             //调用带throws声明的方法,必须显式捕获该异常
 8             //否则,必须在main方法中再次声明抛出
 9             throwChecked(-3);
10         }
11         catch (Exception e)
12         {
13             System.out.println(e.getMessage());
14         }
15         //调用抛出Runtime异常的方法既可以显式捕获该异常,
16         //也可不理会该异常
17         throwRuntime(3);
18     }
19     public static void throwChecked(int a)throws Exception
20     {
21         if (a > 0)
22         {
23             //自行抛出Exception异常
24             //该代码必须处于try块里,或处于带throws声明的方法中
25             throw new Exception("a的值大于0,不符合要求");
26         }
27     }
28     public static void throwRuntime(int a)
29     {
30         if (a > 0)
31         {
32             //自行抛出RuntimeException异常,既可以显式捕获该异常
33             //也可完全不理会该异常,把该异常交给该方法调用者处理
34             throw new RuntimeException("a的值大于0,不符合要求");
35         }
36     }
37 }
时间: 2024-10-18 14:35:25

java异常处理的throw和throws的区别的相关文章

Java中的throw和throws的区别

Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws用来声明方法可能会抛出某些异常 Java中的throw和throws的区别,布布扣,bubuko.com

java 19 - 7 throw和throws的区别

1 /* 2 throw:如果出现了异常情况,我们可以把该异常抛出,这个时候的抛出的应该是异常的对象. 3 4 throws和throw的区别(面试题) 5 throws 6 用在方法声明后面,跟的是异常类名 7 可以跟多个异常类名,用逗号隔开 8 表示抛出异常,由该方法的调用者来处理 9 throws表示出现异常的一种可能性,并不一定会发生这些异常 10 throw 11 用在方法体内,跟的是异常对象名 12 只能抛出一个异常对象名 13 表示抛出异常,由方法体内的语句处理 14 throw则

JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别

JAVA之旅(十)--异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 不知不觉,JAVA之旅这个系列已经更新到第十篇了,感觉如梦如幻,时间过得很快,转眼一个月就这样过去了,我们不多说,继续我们的JAVA之旅 一.异常的概述 异常算是程序中一个比较重要的环节了,我们首先来看一下异常的体系,我们举一个小例子,定义一个除法方法 //公共的 类 类名 public class HelloJJAVA { // 公共的 静态 无返回值 main方

Java中的throw和throws的差别

Java中的throw和throws的差别 1.throwkeyword用于方法体内部.而throwskeyword用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws用来声明方法可能会抛出某些异常

异常机制及throw与throws的区别

Java的异常处理: Java的异常处理是通过5个关键字来实现的:try,catch,throw,throws,finally.Java的在线帮     助中对这几个关键字是这样解释的: Throws: Lists the exceptions a method could throw. Throws:列出一个方法可抛出的异常.       Throw: Transfers control of the method to the exception handler. Throw:将方法的控制权

throw和throws的区别和联系

突然发现今天诗兴大发,看来又得写点内容了. throw和throws对于Java程序员而言它们真的不是很陌生.但对于我这样的选手而言一提到它们的区别和联系就蒙圈了... 为了以后不蒙圈,今天就研究一下吧~~ 如果有不足的地方欢迎批评指正... 1)throws 对于throws关键字而言一般用于抛出编译时的异常,如果某个异常是编译是异常,那么这个异常就需要捕获(try{}catch{}finally{}) 或者抛出(throws).否者的话是无法通过编译的. 这里再简单讲讲二者的区别 对于try

Java try-catch、throw和throws的几点想法

以前写代码,很少用到异常,后来发现这种习惯是错的.异常也是一种信息,并不是错误. 1:先写个简单的类: package com.exception.demo; public class Main { public static void main(String[] args) { Main main = new Main(); } public void methodTry() { } public void methodThrow() { } } 初始环境就是这么简答. 2:下面给方法meth

Java中throw和throws的区别

public Test() throws RepletException { try { System.out.println("Test this Project!") } catch (Exception e) { throw new Exception(e.toString()); } } throws是用来声明一个方法可能抛出的所有异常信息 throw则是指抛出的一个具体的异常类型. 通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内

throw和throws的区别?

throw: 表示方法内抛出某种异常对象 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出 即需要加上 throws 语句 或者 在方法体内 try catch 处理该异常,否则编译报错 执行到 throw 语句则后面的语句块不再执行 throws: 方法的定义上使用 throws 表示这个方法可能抛出某种异常 需要由方法的调用者进行异常处理 package constxiong.interview; import java.io.IOException;