java中带有throws的方法中一定要加throw吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中带有throws的方法中一定要加throw吗?相关的知识,希望对你有一定的参考价值。

为了明确我的问题,简单举个例子:
public void function() throws Exception

......
throw new Exception();
......

我所疑问的是,这个throw语句是不是必须要加,throw与throws语句是不是要配套?

抛出异常,就需要加,没有异常抛出就不加了撒。有异常你也可以不加,(学习的时候) 参考技术A throws是一个抛出异常的声明,代表方法中可能会抛出异常,有了它,就不用TRY,CATCH了。
throw时抛出异常的动作,代表你抛出了个异常。
参考技术B 你问的问题我都看不懂
反正 throws 跟在方法 或 主类的后面,后面跟类名
而throw 跟在语句的后面,后面跟类的对象。

不是拉 更没说要配套
参考技术C 不是throws用于方法标注抛出异常 这样你不需要捕获
throw用于单个语句抛出异常
参考技术D 你可以这样写
public void function() throws Exception

......
throw new Exception();
......

也可以这样写
public void function()

try
..........
catch(Exception e)
............


出错的方法有可能是JDK,也可能是程序员写的程序,无论谁写的,抛出一定用throw

应对未检查异常就是养成良好的检查习惯。

已检查异常是不可避免的,对于已检查异常必须实现定义好应对的方法。

已检查异常肯定跨越出了虚拟机的范围。(比如“未找到文件”)

 

如何处理已检查异常(对于所有的已检查异常都要进行处理):

首先了解异常形成的机制:

当一个方法中有一条语句出现了异常,它就会throw(抛出)一个例外对象,然后后面的语句不会执行返回上一级方法,其上一级方法接受到了例外对象之后,有可能对这个异常进行处理,也可能将这个异常转到它的上一级。

对于接收到的已检查异常有两种处理方式:throws和try方法。

 

注意:出错的方法有可能是JDK,也可能是程序员写的程序,无论谁写的,抛出一定用throw。

 

 1 package TomText;
 2 
 3 
 4 //创建日期类Date并进行输出。
 5 public class TomText_47 {
 6     private int day;
 7     private int month;
 8     private int year;
 9     public void setDate(int d,int m,int y){
10         day=d;
11         month=m;
12         year=y;
13     }
14     public void printDate ( ){
15         System.out.println("今天是"+year+"年"+month+"月"+day+"日");
16     }
17     public static void main(String [ ] args){
18         TomText_47 today=new TomText_47 ( );
19         today.setDate(12,3,2005);
20         TomText_47 thisday;
21         thisday=today;
22         thisday.printDate( );
23     }
24 
25 }

 

以上是关于java中带有throws的方法中一定要加throw吗?的主要内容,如果未能解决你的问题,请参考以下文章

javascript 传递参数中带加号自动变成了空格

java 基础 --异常

Java-throw异常详解以及过程

在java中throw与throws各自用在啥地方?

java 19 - 7 throw和throws的区别

java中throws子句是怎么用的?工作原理是什么?