throw和throws的区别

throw和throws的区别

抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常。下面它们之间的异同

一、系统自动抛异常

当程序语句出现一些逻辑错误、主义错误或类型转换错误时,系统会自动抛出异常

二、throw

1、throw是语句抛出一个异常,一般是在代码块的内部,当程序

现某种逻辑错误时由程序员主动抛出某种特定类型的异常

2、定义在方法体内

3、创建的是一个异常对象

4、确定了发生哪种异常才可以使用

三、throws

1、在方法参数列表后,throws后可以跟着多个异常名,表示抛出的异常用逗号隔开

2、表示向调用该类的位置抛出异常,不在该类解决

3、可能发生哪种异常

throws用在方法声明后面,跟的是异常类名,throw用在方法体内,跟的是异常对象名。

     throws可以跟多个异常类名,用逗号隔开,throw只能抛出一个异常对象名。

     throws表示抛出异常,由该方法的调用者来处理,throw表示抛出异常,由方法体内的语句处理。

throws表示出现异常的一种可能性,并不一定会发生这些异常,throw则是抛出了异常,执行throw则一定抛出了某种异常。

四、异常

异常概述:

异常:异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。简单来说就是程序出现了不正常的情况。异常本质就是Java当中对可能出现的问题进行描述的一种对象体现。

 

如果我们不做任何处理,异常将会交由虚拟机来处理

 

虚拟机的处理方式:

把异常的名称,异常出现的位置,异常原因,等信息输出打印在控制台,并同时将  程序停止执行。

在写程序时,对可能会出现异常的部分通常要用try{...}catch{...}去捕捉它并对它进行处理;

用try{...}catch{...}捕捉了异常之后一定要对在catch{...}中对其进行处理,那怕是最简单的一句输出语句,或栈输入e.printStackTrace();

如果是捕捉IO输入输出流中的异常,一定要在try{...}catch{...}后加finally{...}把输入输出流关闭;

如果在函数体内用throw抛出了某种异常,最好要在函数名中加throws抛异常声明,然后交给调用它的上层函数进行处理。

作为新手小菜鸟的我,只想记录,便于温故知新,如有错误或疏忽,请留言,审查后改正,谢谢各位大佬
原文地址:https://www.cnblogs.com/zhangsonglin/p/10556402.html