异常处理机制】异常处理中throws和throw的区别?

2021-11-11 09:39发布

19条回答
爱梦 - 拿来吧你
2楼 · 2021-11-11 09:42

1)作用不同: throw用于程序员自行产生并抛出异常; throws用于声明在该方法内抛出了异常

2) 使用的位置不同: throw位于方法体内部,可以作为单独语句使用; throws必须跟在方法参数列表的后面,不能单独使用。

3)内容不同: throw抛出一个异常对象,且只能是一个; throws后面跟异常类,而且可以有多个。


上来打杂的
3楼 · 2021-11-11 11:22

throws只是在方法上的声明,表示函数可能会抛出改异常

throw是抛出实际的异常,如果在try的代码块中使用可能会抛出异常的函数,catch捕获后想要再次抛出给上层方法体,则需要再方法体上再次声明。

1.用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常。
throw是语句抛出一个异常。
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)

2.throws关键字是声明在方法体上的,表示该方法可能会抛出某种类型的异常(但并非一定抛出)

夏虫语冰
4楼 · 2021-11-11 13:47

catch语句的参数类似于方法的声明,包括一个例外类型和一个例外对象。例外类型必须为Throwable类的子类,它指明了catch语句所处理的例外类型,例外对象则由运行时系统在try所指定的代码块中生成并被捕获,大括号中包含对象的处理,其中可以调用对象的方法。

catch语句可以有多个,分别处理不同类的例外。Java运行时系统从上到下分别对每个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止。这里,类型匹配指catch所处理的例外类型与生成的例外对象的类型完全一致或者是它的父类,因此,catch语句的排列顺序应该是从特殊到一般。

Danke - 四有青年
5楼 · 2021-11-11 14:42

throws是告诉调用者,抛出一个什么样的异常,即异常的类型;throw是真正抛出一个异常的实例,例如throw new IOException();throw是表示明确抛出一个异常;
throws用在方法声明()的后面,{ 之前,告诉调用此方法的调用者该方法可能抛出的异常,以备调用者捕获,如果该方法抛出的是运行时异常RuntimeException,Error及其子类异常则无须使用throws. 编译时异常得用throws声明

一个Ai
6楼 · 2021-11-11 15:32

区别一:
              throw 是语句抛出一个异常;throws 是方法抛出一个异常;
              throw语法:throw <异常对象>
              在方法声明中,添加throws子句表示该方法将抛出异常。
              throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]
             其中:异常类可以声明多个,用逗号分割。
区别二:
             throws可以单独使用,但throw不能;
区别三:
            throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使 用,然后再由处理异常的方法捕获。

123654
7楼 · 2021-11-12 16:49

1、作用不同:throw用于程序员自行产出并抛出异常;throws用于声明在该方法内抛出了异常

 2、使用的位置不同:throw位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用。

 3、内容不同:throw抛出一个异常对象,且只能是一个;throws后面跟异常类,而且可以有多个


不吃鱼的猫
8楼 · 2021-11-12 18:18

throw用于程序员自行产生并抛出异常; throws用于声明在该方法内抛出了异常

IT学习助手 - qq:2676427015
9楼 · 2021-11-13 15:13

从以下三个方面来展开

第一、 throw用于程序员自行产生并抛出异常; throws用于声明在该方法内抛出了异常。

第二、使用的位置不同: throw位于方法体内部,可以作为单独语句使用; throws必须跟在方法参数列表的后面,不能单独使用。
第三、内容不同: throw抛出一个异常对象,且只能是一个; throws后面跟异常类,而且可以有多个。

相关问题推荐

  • 回答 11

    基本执行过程如下:1)程序首先执行可能发生异常的try语句块。2)如果try语句没有出现异常则执行完后跳至finally语句块执行;3)如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。4)catch语句块可以有多个,分别捕获不同类型...

  • 回答 16

    异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。受检异常跟程序运行的上下文环境有关,即使程序设计无误,仍然可能因使用的问题而引发。Java编译...

  • 回答 10

    Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java 中,每个异常都是一个对象,它是Throwable 类或其子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获...

  • 回答 5

    OutOf MemoryError这种错误可以细分为多种不同的错误,每种错误都有自身的原因和解决办法,如下所示:java.lang.OutOfMemoryError: Java heap space 错误原因:此OOM是由于JVM中heap的最大值不满足需要。 解决方法:1) 调高heap的最大值,即-Xmx的值调大。...

  • 回答 6

    问题的根本原因是工程中某个jar包的版本(jar包编译时的所用的jdk版本)高于工程build path中jdk的版本,这个是不兼容的! 编程中遇到此异常Unsupported major.minor version 52.0(根据版本号,这里可以为其他数值,52是1.8jdk jar包与 1.8以下低版本jdk不匹配)...

没有解决我的问题,去提问