throws 、throw的区别?

throws throw的区别?

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

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

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

4.如果异常抛给了main()方法,主方法不处理任何异常,而交给Java中最大头JVM,所以如果在main方法使用了throws关键字,则表示一切异常交给JVM进行处理。默认处理方式也是JVM完成。

throws throw必须是成对出现的吗?请举例说明

个人理解:不一定,当方法中的代码块出现了异常,而且不立刻处理,可以显式抛出给调用者,这时候只需要使用throws声明方法就可以了;当我们想自己抛出异常时使用throw,如果这个异常是运行时异常的话,就不需要throws进行声明,如果是检测异常,则此方法需要throws进行声明,此时才会成对出现。

请你写出你常见的10个异常类?

常见的RuntimeException异常:

1.NullPointerException: 空指针异常。当应用程序试图访问空对象时,则抛出该异常。

2.ClassCastException: 类型强制转换异常。它是JVM在检测到两个类型间转换不兼容时引发的运行时异常。

3.ArrayIndexOutOfBoundsException: 数组下标越界异常。跟数组打交道时,需要注意一下这个异常。

4.ArithmeticException:算术运算异常。当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例。

5.NumberFormatException: 数字格式异常。当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。如,”abc”转为int型

常见的 Checked Exception 异常:

1.SQLException:操作数据库异常 。提供关于数据库访问错误或其他错误信息的异常,它是Checked Exception(检查异常)。

2.IOException:IO异常。一般跟读写文件息息相关,它也是Checked Exception(检查异常)。平时读写文件,记得IO流关闭!

3.TimeoutException:阻塞操作超时异常。 指定超时的阻止操作需要一种表示超时发生的方法。 对于许多这样的操作,可以返回一个指示超时的值; 当不可能或不可取的时候,应该声明和抛出TimeoutException 。

4.FileNotFoundException:文件未找到异常。当试图打开指定路径名表示的文件失败时,抛出此异常。(IOException的子类)。

5.NoSuchMethodException:方法未找到异常。

猜你喜欢

转载自blog.csdn.net/zhangzhanbin/article/details/111934909