异常处理:throw,throws和Throwable

可以任你解释的区别是什么之间throwthrows以及Throwable和什么时候使用?



PIPIONE
浏览 1401回答 3
3回答

收到一只叮咚

throws:在编写方法时使用,用于声明所讨论的方法引发指定的(检查的)异常。与检查的异常相反,运行时异常(NullPointerExceptions等)可能会在没有声明方法的情况下抛出throws NullPointerException。throw:实际引发异常的指令。(或更具体地说,Throwable)。throw关键字后面是对Throwable(通常是异常)的引用。例:Throwable:必须扩展该类以创建自己的,自定义的,可抛出的类。

慕少森

throw:语句抛出的对象t,其中t instanceof java.lang.Throwable必须是真实的。throws:方法签名令牌,用于指定throw该方法检查的异常。java.lang.Throwable:可以抛出(捕获)的所有对象的父类型。

慕斯王

这真的很容易理解。该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那些不必声明的规则。这是异常使用方面的另一个故事。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java