throw 是语句抛出一个异常;throws 是方法抛出一个异常
来源:互联网 发布:怎样打开数据库 编辑:程序博客网 时间:2024/05/28 05:17
区别一:
throw 是语句抛出一个异常;throws是方法抛出一个异常;
throw语法:throw <异常对象>
在方法声明中,添加throws子句表示该方法将抛出异常。
throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]
其中:异常类可以声明多个,用逗号分割。
区别二:
throws可以单独使用,但throw不能;
区别三:
throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由处理异常的方法捕获。
throws E1,E2,E3 只是告诉程序这个方法可能会抛出这些个异常,方法的调用者可能要处理这些异常。而这些异常E1,E2,E3可能是该函数体产生的。
而throw是明确之处这个地方要抛出这个异常。
void doA() throwsException1, Exception3 {
try {
……
} catch(Exception1 e) {
throw e;
} catch(Exception2 e) {
System.out.println("出错了");
}
if (a != b)
throw new Exception3("自定义异常");
}
代码块……中可能产生异常Exception1、Exception2和Exception3。
如果产生Exception1异常,则捕捉了之后抛出由该方法的调用者去做处理;
如果产生Exception2异常,则该方法自己做了处理(打印出了说出错了),所以该方法就不会再向外抛出Exception2异常了,void doA() throws Exception1,,Excpetion3里面的Exception2也就不用写了;
而Exception3异常是该方法的某段逻辑出错,程序员自己作了处理在该段逻辑错误的情况下抛出异常Exception3,则调用者也需要处理。
throw语句用在方法体内,表示抛出异常,由方法体内的语句处理
throws语句用在方法声明后面,表示再抛出异常,由调用这个方法的上一级方法中的语句来处理
throws主要是声明这个方法会抛出这种类型的异常,使其他地方调用它时知道要捕获这个异常。
throw是具体向外抛异常的动作,所以它是抛出一个异常实例。
throws说明你有哪个可能,倾向
throw的话,那就是你把那个倾向变成真实的了
同时:
1)throws出现在方法函数头;而throw出现在函数体;
2)throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常;
3)两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
- throw 是语句抛出一个异常;throws 是方法抛出一个异常
- 抛出异常throw和throws
- throw,throws和层层抛出异常
- java中异常的抛出:throw throws
- 异常抛出throw与throws的区别
- 抛出异常throw和throws总结
- Java中throws,throw抛出异常问题
- 抛出一个异常
- throws自定义抛出异常
- 使用throw抛出异常
- throw关键字抛出异常
- 使用throw抛出异常
- 抛出异常throw,catch
- 抛出异常函数 @throw
- c++ 异常抛出 throw
- 使用throw抛出异常
- java throw抛出异常
- 使用throw抛出异常
- JsonHelper
- java List 求两个数组的交集、求两个数组的差集
- POJ 1526 Oil Deposits
- 计算UILable格式内容的高度
- Copy Constructor
- throw 是语句抛出一个异常;throws 是方法抛出一个异常
- c++写的计算器
- init.d详解
- java--加法的实现
- Linq表达式的简单应用
- do{}while(0)的妙用
- eclipse vim插件viPlugin 2.0.0的安装与破解 以及常用的vim命令
- 如何将UITableViewDelegate和UITableViewDataSource从UITableViewController中分离出来?
- ASP.NET导出到word(还在修改中)