异常机制中throw和throws的区别
2010-11-12 11:02
253 查看
public ChatEntry() throws ServerConnectionException {
try {
socket = new Socket("127.0.0.1", 8189);
in=new Scanner(System.in);
out = new PrintWriter(socket.getOutputStream(), true);
} catch (UnknownHostException ex) {
Logger.getLogger(ChatEntry.class.getName()).log(Level.SEVERE, null, ex);
throw new ServerConnectionException("服务器连接无效",ex);
} catch (IOException ex) {
Logger.getLogger(ChatEntry.class.getName()).log(Level.SEVERE, null, ex);
throw new ServerConnectionException("服务器连接异常",ex);
}
}
今天复习老师讲的上述代码,感觉对throw和throws的概念很模糊,声明方法时已经用throws抛出,方法体中为什么还要用throw抛出?即便如此,方法体中抛出的还是实例?
我带着种种疑问,查了一些资料,上网搜索了一下,具体归纳如下:
1. throws出现在方法函数头,可以单独使用;而throw出现在函数体,不可以单独使用,throw要么和try-catch-finally语句配套使用,要么与throws配套使用。
2.throws主要是声明这个方法会抛出这种类型的异常,使其他地方调用它时知道要捕获这个异常。 throw是具体向外抛异常的动作,所以它是抛出一个异常实例。
3. throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常;
4. 程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。
try {
socket = new Socket("127.0.0.1", 8189);
in=new Scanner(System.in);
out = new PrintWriter(socket.getOutputStream(), true);
} catch (UnknownHostException ex) {
Logger.getLogger(ChatEntry.class.getName()).log(Level.SEVERE, null, ex);
throw new ServerConnectionException("服务器连接无效",ex);
} catch (IOException ex) {
Logger.getLogger(ChatEntry.class.getName()).log(Level.SEVERE, null, ex);
throw new ServerConnectionException("服务器连接异常",ex);
}
}
今天复习老师讲的上述代码,感觉对throw和throws的概念很模糊,声明方法时已经用throws抛出,方法体中为什么还要用throw抛出?即便如此,方法体中抛出的还是实例?
我带着种种疑问,查了一些资料,上网搜索了一下,具体归纳如下:
1. throws出现在方法函数头,可以单独使用;而throw出现在函数体,不可以单独使用,throw要么和try-catch-finally语句配套使用,要么与throws配套使用。
2.throws主要是声明这个方法会抛出这种类型的异常,使其他地方调用它时知道要捕获这个异常。 throw是具体向外抛异常的动作,所以它是抛出一个异常实例。
3. throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常;
4. 程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。
相关文章推荐
- 异常机制及throw与throws的区别
- 异常机制及throw与throws的区别
- 异常机制及throw与throws的区别
- 异常机制中throw和throws的区别
- Java异常机制关键字总结,及throws 和 throw 的区别
- 异常机制及throw与throws的区别
- 异常机制及throw与throws的区别
- 异常机制及throw与throws的区别
- 异常机制及throw与throws的区别
- 异常机制及throw与throws的区别(转)
- 异常机制及throw与throws的区别
- 异常机制及throw与throws的区别
- java异常机制:异常架构,执行流程,throw/throws的区别,自定义异常
- 异常机制及throw与throws的区别 (z)
- 异常机制及throw与throws的区别
- 异常处理中throw和throws区别
- Java异常机制try、catch、finally、throw、throws五个关键字。
- java异常处理的throw和throws的区别
- 【技术】Java入门:详解Java异常处理中throw与throws关键字的用法区别
- 【转】关于java异常中的throws和throw的区别