为了账号安全,请及时绑定邮箱和手机立即绑定

异常处理:throw,throws和Throwable

异常处理:throw,throws和Throwable

PIPIONE 2019-11-14 10:21:44
可以任你解释的区别是什么之间throw,throws以及Throwable和什么时候使用?
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

throws:在编写方法时使用,用于声明所讨论的方法引发指定的(检查的)异常。


与检查的异常相反,运行时异常(NullPointerExceptions等)可能会在没有声明方法的情况下抛出throws NullPointerException。


throw:实际引发异常的指令。(或更具体地说,Throwable)。


throw关键字后面是对Throwable(通常是异常)的引用。


例:


Throwable:必须扩展该类以创建自己的,自定义的,可抛出的类。


查看完整回答
反对 回复 2019-11-14
?
慕少森

TA贡献2019条经验 获得超9个赞

  • throw:语句抛出的对象t,其中t instanceof java.lang.Throwable必须是真实的。

  • throws:方法签名令牌,用于指定throw该方法检查的异常。

  • java.lang.Throwable:可以抛出(捕获)的所有对象的父类型。


查看完整回答
反对 回复 2019-11-14
?
慕斯王

TA贡献1864条经验 获得超2个赞

这真的很容易理解。


该java.lang.Throwable中:


该Throwable班是在Java语言中所有错误和异常的超类。Java虚拟机仅抛出属于此类(或其子类之一)的实例的对象,或者Java throw语句可以抛出该对象 。同样,catch子句中的参数类型只能是此类或其子类之一 。 更多


关键字throws用于方法声明中,它指定了我们可能期望此方法产生的异常类型[Throwable class]。


关键字throw用于抛出Throwable类实例的对象。


以免看到一些例子:


我们创建自己的异常类


public class MyException super Exception {


}

我们创建了一个方法,该方法从异常类创建对象,并使用关键字throw 抛出该对象。


private  void throwMeAException() throws MyException //We inform that this method throws an exception of MyException class

{

  Exception e = new MyException (); //We create an exception 


  if(true) {

    throw e; //We throw an exception 

  } 

}

当我们要使用method时throwMeAException(),由于我们掌握了它抛出某些东西的信息,因此我们不得不以特定的方式来处理它,在这种情况下,我们有三个选择。


第一种选择是使用块try和catch处理异常:


private void catchException() {


   try {

     throwMeAException();

   }

   catch(MyException e) {

     // Here we can serve only those exception that are instance of MyException

   }

}

第二种选择是传递异常


   private void passException() throws MyException {


       throwMeAException(); // we call the method but as we throws same exception we don't need try catch block.


   }

第三种选择是捕获并重新引发异常


private void catchException() throws Exception  {


   try {

     throwMeAException();

   }

   catch(Exception e) {

      throw e;

   }

}

继续,当您需要停止某些操作时,您可以抛出异常,该异常将通过某些try-catch块返回直到服务器无法使用。无论在何处使用引发异常的方法,都应通过try-catch块进行处理,或将声明添加到方法中。


该规则的例外是java.lang.RuntimeException那些不必声明的规则。这是异常使用方面的另一个故事。


查看完整回答
反对 回复 2019-11-14
  • 3 回答
  • 0 关注
  • 1400 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信