java throw和throws的区别及用法

这两者虽然看起来只有一个s的区别,但是作用完全不一样
/java处理异常方式///
在java代码中如果发生异常的话,jvm会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:

int i= 1;
int j = 0;
int res = 0;
res = i/j;//除0错误
System.out.println(res);

这5句代码运行到第四句会中断,因为jvm抛出了异常

throw的作用/
手动抛出异常

但是有时候有些错误在jvm看来不是错误,比如说
int age = 0;
age = -100;
System.out.println(age);
很正常的整形变量赋值,但是在我们眼中看来就不正常,谁的年龄会是负的呢。
所以我们需要自己手动引发异常,这就是throw的作用
int age = 0;
age = -100;
if(age<0)
{
Exception e = new Exception();//创建异常对象
throw e;//抛出异常
}
System.out.println(age);

throws的作用///
声明方法可能回避的异常

有异常被抛出了,就要做处理,所以java中有try-catch
可是有时候一个方法中产生了异常,但是不知道该怎么处理它,那么就放着不管,当有异常抛出时会中断该方法,而异常被抛到这个方法的调用者那里。这个有点像下属处理不了的问题就交到上司手里一样,这种情况称为回避异常
但是这使得调用这个方法就有了危险,因为谁也不知道这个方法什么时候会丢一个什么样的异常给调用者,所以在定义方法时,就需要在方法头部分使用throws来声明这个方法可能回避的异常
void fun()throws IOException,SQLException
{
...
}
这表示 fun方法可能会丢两个异常出来,那么在调用fun的时候就会做好准备,比如可以这样
try
{
fun();
}catch(IOException e)
{
}catch(SQLException e)
{
}
完毕
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java 中的 `throw` 和 `throws` 是两个不同的关键字,用于处理异常的方式不同。 `throw` 关键字用于显式地抛出一个异常对象,它通常用在方法体内部,用于在特定情况下主动抛出异常。 ``` public void do ### 回答2: 在Java中,throwthrows是用于处理异常的关键词,但它们在使用方式和功能上有所不同。 throw是一个关键词,用于抛出异常。当程序在某个条件下发生异常时,可以使用throw关键词手动抛出一个异常对象。通过throw关键词,我们可以自定义异常,并在程序中显式地抛出异常对象。使用throw关键词抛出的异常被称为"手动异常"。它通常用于非受查异常,即RuntimeException及其子类。 throws是一个关键字,用于声明可能抛出的异常。当一个方法可能抛出异常时,可以在方法声明中使用throws关键词进行标识。通过throws关键词,我们可以提醒其他程序调用此方法时可能发生的异常情况,以便调用者对可能的异常进行捕获或继续抛出。throws关键词只是声明异常,不会真正处理异常。它通常用于受查异常,即非RuntimeException及其子类。 总结来说,throw用于在程序中手动抛出异常,而throws用于在方法声明中声明可能抛出的异常。throw用于抛出非受查异常,而throws用于抛出受查异常。使用throw可以自定义异常,并在必要时抛出,而使用throws可以提醒调用方可能会抛出的异常,让调用方进行处理。它们在处理异常的方式和粒度上有所不同,但都是为了保证程序的稳定性和可靠性。 ### 回答3: 在Java中,throwthrows是两个不同的关键字,用于处理异常。 throw用于手动抛出一个异常,它必须与一个异常对象一起使用,用于指定在程序执行过程中发生了什么错误或异常情况。通过throw关键字,我们可以自定义异常,并在需要的地方抛出。例如: ```java throw new NullPointerException("对象为空"); ``` throws用于标识一个方法可能抛出的异常类型,它在方法声明的括号之后使用,并在方法名和参数列表之后紧跟一个或多个异常类型。它用于告知方法的调用者,该方法可能会抛出哪些异常,从而允许调用者正确处理这些可能发生的异常。例如: ```java public void readFile() throws IOException { // 代码逻辑 } ``` 通过throws关键字,我们可以将异常的处理责任交给方法的调用者,在调用该方法时,必须使用try-catch代码块来处理可能的异常。 总结起来,throw用于在程序中手动抛出异常,而throws用于在方法声明中指定可能抛出的异常类型。throw是一个关键字,而throws是方法声明的一部分,它们的作用不同,但都与异常处理相关。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值